PHP和恢复密码的过程



所以我计划在php中使用phpass为我的身份验证系统哈希密码。我的问题是,当有人因为忘记密码而要求恢复密码时,最佳做法是什么?你会实施问答系统并允许他们在网站上重置吗?或者你会用一个随机的密码字符串临时重置他们的密码,然后通过电子邮件发送给他们吗?要求他们在下次登录时更改它?还是有一种不同的、更好的方法?

如果用户选择了容易猜测的问题,或者攻击者对受害者有深入了解,则查询/响应可能不足。许多知名网站利用原始用户提供的信息:电子邮件地址。向电子邮件地址发送密码重置链接,并允许用户按照该链接重置密码。

请参阅周在"实现密码恢复最佳实践"中的回答,了解如何使密码恢复更安全以及为什么安全问题是个坏主意。

布鲁斯·施奈尔也对这个问题有一些想法。

我推荐邓肯的建议。

然而,你不应该做的:

发送密码-因为毕竟,如前所述,您没有。

生成新的临时密码-这不仅和发送密码,也会导致拒绝服务的可能性袭击我可以去网站假装要成为您,请请求新密码,然后然后(如果你还没有检查你的电子邮件)您无法登录,不知道为什么必须申请新的暗语

代币可能是未来的发展方向。收到它会通知遗忘者密码请求,但不接受任何除非您确认。你会的还将其作为一次性代币到期时间相对较短危险

如果有什么问题的话,应该使用安全问题来允许用户启动密码重置请求。I.E.您需要提供您的电子邮件和安全问题的答案来发送密码重置请求。

最新更新