栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Security记住我的cookie Unicode字符错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Security记住我的cookie Unicode字符错误

这是Spring Security中的错误。它像这样计算MD5

Hex.enpre(digest.digest(data.getBytes()));

使用0参数版本,

getBytes
使用默认编码将Unipre字符编码为字节。默认编码有所不同,但显然在您的服务器上,该编码不能包含中文字符。

绝对不应依赖默认编码。它通常不是UTF,因此不能包含所有Unipre字符。另外,由于它不是固定的,因此当您从一台服务器移动到另一台服务器时,它可能会破坏令牌。Spring应该设置一个显式的UTF编码,例如

getBytes("UTF-8")

这不是让我记住的唯一记住属性:

  • 它使用的是MD5,这是一种哈希算法,已经过了很长时间,而且越来越容易受到攻击。它甚至都没有使用HMAC-MD5来缓解这种情况(HMAC正是为此目的而设计的)

  • 所有不受支持的字符都被默默压缩为同一字符,

    ?
    这意味着用户的哈希值
    你好
    将与用户的哈希值相同
    ☃☃
    。因此,从理论上讲,可以通过创建另一个用户名中具有不支持字符的用户,然后以其用户名中包含不支持字符的任何受害者用户身份登录(或问号本身!)。 cookie,以在新用户的哈希中包含受害者用户名。(实际上,(a)散列中“密码”字段的存在使事情变得复杂,尽管这也容易受到Unipre字符挤压的影响;(b)幸运的是,cookie本身也使用默认编码被错误地解码,从而防止了首先是将任意Unipre字符放入检查器)。

  • 它把字符串扔在一起而没有任何分隔符,所以当组件中有冒号时会发生怪异。您可能真的不能直接对它进行太多攻击,但是它很笨拙,解决它的尝试光荣地失败了。

我不会信任此代码来保护我的Web应用程序。在高调的安全性库中看到这种情况令人失望。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号