PHP的password_verify()函数对于非常长的密码(DoS攻击)是安全的吗?

8 浏览
0 Comments

PHP的password_verify()函数对于非常长的密码(DoS攻击)是安全的吗?

一般攻击场景:

在2013年,Django存在一个一般性漏洞,攻击者可以通过非常大的密码创建极端密集的CPU计算[点击此处查看安全通知]。我不确定在没有任何进一步检查的情况下,使用PHP的password_verify()和其他密码哈希方法是否仍然可能存在此漏洞。

PHP文档中说:

使用PASSWORD_BCRYPT作为algo参数将导致password参数被截断为最大长度为72个字符。

但是,PHP的代码可能说了不同的话:

然而,PHP 5.5.0的password_verify()函数的C代码并没有直接限制传递的参数(也许在bcrypt算法的更深层级上有限制?)。此外,PHP的实现也没有限制参数。

问题:

password_verify()(以及同一函数集的其他函数)是否容易受到通过达到POST参数最大值的DoS攻击?请考虑POST上传大小远大于4MB的整个站点配置情况。

0