忘记密码页面,但密码经过哈希处理

Anr*_*rgh 1 php hash password-recovery saltedhash

我需要实现一个忘记密码页面,但我的密码是盐渍和散列的.所以我不能按常规检索它们.我的想法是做以下事情:

  • 当用户单击"忘记密码"链接时,他们自然需要输入他们的电子邮件地址(也是他们的用户名).

  • 他们的密码被重置为我制作的哈希和盐渍密码.然后,我向他们发送一封电子邮件,其中包含指向新页面的链接,他们可以在其中键入新密码.

  • 该链接包含新的散列和盐渍密码(作为$ _GET变量),仅用于身份验证.

  • 我只是从链接中获取$ _GET变量,对DB中的条目进行身份验证,并对hash和salt新密码进行身份验证并插入到db中.

这有多安全?对于垃圾邮件发送者和暴力攻击者不容易成为攻击目标的站点.

提前致谢.

Pek*_*ica 6

听起来不错; 但是,对于一个更常光顾的网站的总安全性,一个稍微不同的方法值得考虑:

  • 让用户像往常一样输入他们的电子邮件地址

  • 使用您构建并发送的随机密码填充第二个密码字段

  • 使用生成第二个密码的日期和时间填充其他列

  • 如果用户未在24小时内做出反应(即使用新密码登录),请从第二列中删除密码

在带有新密码的电子邮件中,向用户说明如果他们没有请求新密码,他们可以忽略它.

这样,输入用户的电子邮件地址的第三方无法通过完全重置密码来阻止用户访问自己的帐户.