使用bcrypt登录表单sleep()

Sau*_*igh 2 php security login

如果密码是由bcrypt用password_hash($password, PASSWORD_DEFAULT)和存储的,那么使用sleep()来阻止暴力攻击有什么意义吗?['cost' => 12]

登录表单使用标准 password_verify

if (!password_verify($password, $check_password)) {
Run Code Online (Sandbox Code Playgroud)

我注意到将成本增加到16将显着增加提交时的登录时间.它是否与sleep()的工作方式相同,如果是这样,它是否可以被DOS用于服务器?

Sco*_*ski 7

成本因素旨在阻止离线暴力攻击(即在某人从数据库中获取哈希值之后).对于实际的在线蛮力攻击,Bcrypt已经太慢了.例外:如果您的密码是最常见10,000个密码之一,那么猜测是微不足道的.您想要的不是增加成本因素​​,而是专注于限制登录尝试的速率.