可能重复:
最好的“忘记密码”方法是什么?
在阅读了不同的忘记密码请求技术之后,我决定通过电子邮件向用户发送一个链接,他们可以在其中更改密码。我的问题是最好的方法是什么?这是我目前的方法:
- 向用户询问他们的电子邮件
- 向他们发送一个指向 newpassword.php 页面的链接,其中包含随机生成的长字母数字代码作为参数。
- 散列该代码并将其与电子邮件地址和时间戳一起存储在 mysql 表中
- 当用户访问该链接时,系统会再次要求他们提供电子邮件。
- 在表格中搜索该电子邮件。如果时间戳超过 24 小时,它将被删除,用户必须请求另一个链接。
- 检查代码是否匹配。如果是这样,让用户重置密码。
- 更改用户表中的密码并发送另一封电子邮件以确认已更改。
我是网站安全的新手,但我没有找到很多让用户重置忘记密码的算法示例(除了简单地创建一个新密码并将其发送给他们,这对我来说似乎相当弱)。我的方法中是否存在任何安全漏洞?有人知道我可以查看的任何好的指南吗?提前致谢!