对于存储带有password_hash php
功能的密码的网站,我想到了以下方法来让用户重置密码,但我不知道是否会导致任何安全漏洞:
这似乎可以确保只有有权访问帐户所有者电子邮件的人才能更改密码
答案 0 :(得分:2)
通过电子邮件发送哈希密码,可以通过电子邮件以明文形式公开。虽然强散列函数可以防止暴力破坏,但它仍然容易受到字典攻击等的影响。因此,如果攻击者拦截了电子邮件,他们就可以确定密码。
知道许多用户在不同服务之间重用密码,这一点尤为麻烦。此外,这样的电子邮件可以留在用户的手中。邮箱很长一段时间。这意味着用户成功重置密码后,安全风险可能会持续数年。
更安全的替代方法是使用一次性随机令牌(您当然需要将其存储在数据库中的某个位置),理想情况下还要及时限制:这样可以确保只有电子邮件的收件人可以重置密码避免上述风险。