cve - 2013 - 5750:安全问题在FOSUserBundle登录表单
Django最近发布了一新版本的框架来解决可能的DOS攻击时,攻击者使用一个很长的密码登录表单。
密码的最佳实践之一是存储一个哈希密码而不是原始值。在Syob娱乐下载mfony,编码器负责创建散列(当用户创建一个帐户)和验证(当一个用户试图登录)。
内置编码器,大部分时间是需要计算可以大大提高哈希密码的长度。如果攻击者提交随机大反复的密码,Symfony将被迫做昂贵的计算。ob娱乐下载
所有编码器不脆弱,但是推荐的。需要的信息,这是次编码100万个字符的密码(一行*
表示内置编码器默认配置):
编码器 | encodePassword () |
---|---|
BCrypt(成本< 14) | < 1 |
BCrypt成本(18) | 20年代 |
BCrypt 20(成本) | 78年代 |
Pbkdf2 * (1000) | 6 s |
明文* | < 1 |
MessageDigest * (5000) | 30年代 |
Pbkdf2 (10000) | 55岁的年代 |
如您所见,Pbkdf2的编码器,需要几乎一分钟当迭代次数设置为‘10000’的数量(这是迭代中使用iOS 7。)
ob娱乐下载Symfony不带有默认登录/密码形式,但是FOSUserBundle所做的事。FOSUserBundle容易受到这种攻击是没有密码最大长度验证用户密码字段。的新版本FOSUserBundle (1.3.3)刚刚发布解决这个问题通过添加一个最大长度(设置为一个有效的密码4096年
默认情况下)。如果你的网站使用一个登录表单不使用FOSUserBundle,检查设置密码的最大长度验证器。
为了更好地保护Symfony开发者,ob娱乐下载Symfony 2.4增加了一个硬限制的4096年
字符的最大长度,密码传递给encodePassword ()
和isPasswordValid ()
(你需要调用的方法美元$ this - > checkPasswordLength(生);
如果你使用一个定制的编码器)。所以,你需要设置的最大长度验证器相同或下限。
我们也会更新文档欧宝官网下载app更新密码和编码器的最佳实践。
发现Symfony的安全问题?ob娱乐下载将详细信息发送到安全[在]symfony.cob娱乐下载om不公开披露它,直到我们可以提供一个解决。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
登录表单的处理不是由FOSUserBundle实现(它只显示一种形式),但由Symfony安全组件,以及避免DOS攻击登录表单是Symfony中实现的硬限制。ob娱乐下载
FOSUserBundle马克斯长度设置有两个用例:
保护注册和密码重置表单(他们也保护Symfony的变化在2.4顺便说一句,编码器使用)ob娱乐下载
——禁止用户设置一个合理的密码超过Symfony支持的最大长度(验证错误比BadCredentialException当你设置你的新密码)ob娱乐下载