也许是愚蠢的问题......,
但是我问自己,一旦我使用password_hash()函数对密码(纯文本)进行哈希处理,是否将密码(纯文本)存储起来是有用的...
由于password_verify()仅使用hashnSalt来检查传递是否正确。
一旦“恶棍”获得对数据库的访问权限,他就没有明文密码(会让他有时间强迫他们)
如果用户忘记了密码,他就无法取回密码:唯一的方法是重新创建新密码。
我在50/50 ..
答案 0 :(得分:2)
在任何情况下都不要永远存储明文密码。这样做会首先破坏密码哈希的全部目的。
使用单向哈希算法的全部目的是,如果黑客进入您的站点并窃取您的数据库,那么黑客几乎不可能在不使用暴力或表的情况下为您的用户获取密码。 (password_hash()
函数引入的盐也可以缓解表风险。)
您应该永远无法检索用户的密码,即使是网站所有者/运营商(如果可以,那么黑客也可以)。这就是为什么任何会向您发送密码而不是重置密码的网站会立即出现红旗,因为他们没有安全地存储您的凭据。
处理此问题的正确方法是,如果用户忘记了密码,则会发送临时链接,允许用户创建新密码。
答案 1 :(得分:1)
首先:永远不要存储纯文本密码!可能用户使用多个相同密码的地方,您可以将登录信息提供给攻击者的其他服务。
我只会创建创建的哈希,如果用户需要记住密码,他/她将需要重新设置密码。您可以选择执行此操作的方法,但发送带有唯一临时链接的电子邮件是最佳解决方案。
答案 2 :(得分:0)
如果用户忘记了密码,您可以向他/她的电子邮件发送一个链接到他的页面并要求他更改密码。或者您可以为用户设置新密码并将其发送给该用户