忘记密码:实现忘记密码功能的最佳方法是什么?

我想知道在网站上创建忘记密码功能的最佳方法是什么。我已经看到了很多,这里是其中的一些或组合:

  • 密码问题/答案(1个或更多)

  • 使用新密码发送电子邮件

  • 在屏幕上输入新密码

  • 通过电子邮件确认:必须单击链接以获取新密码

  • 要求用户输入新密码的页面

您将为忘记密码功能添加什么组合或其他步骤?我想知道他们如何请求新密码以及最终如何获得密码。

我正在根据无法获取密码的原则进行操作;必须提供/生成一个新密码。

编辑我喜欢科里所说的关于不显示用户名是否存在的说法,但是我想知道显示什么。我在想问题的一半是用户忘记了他们使用的电子邮件地址,该电子邮件地址显示某种“不存在”消息很有用。有什么办法吗?


海绵宝宝撒
浏览 601回答 3
3回答

幕布斯7119047

我个人会发送一封包含指向短期页面链接的电子邮件,让他们设置新密码。使页面名称成为某种UID。如果那样对您不利,那么向他们发送一个新密码并强迫他们在首次访问时进行更改也可以。选项1容易得多。

一只斗牛犬

一些重要的安全问题:密码短语问题/答案实际上降低了安全性,因为它通常成为流程中最薄弱的环节。通常,猜测某人的答案比输入密码要容易得多-特别是如果问题没有经过仔细选择。假设电子邮件在您的系统中充当用户名(出于各种原因,通常建议使用该用户名),则对密码重置请求的响应不应指示是否找到了有效的帐户。它仅应说明已将密码请求电子邮件发送到提供的地址。为什么?表示电子邮件不存在/不存在的响应允许黑客通过提交多个密码请求(通常通过burp套件之类的HTTP代理)并记录是否找到电子邮件来收集用户帐户列表。为了防止登录收获,您必须确保没有与登录/身份验证相关的功能提供任何指示,以指示何时在登录/密码重置表单上输入了有效的用户电子邮件。有关更多背景信息,请查阅《Web应用程序黑客手册》。这是有关创建安全身份验证模型的绝佳读物。编辑:关于您编辑中的问题-我建议:“密码请求电子邮件已发送到您提供的地址。如果没有很快收到电子邮件,请检查您的垃圾邮件文件夹。如果没有收到电子邮件,则您提供的电子邮件不存在任何帐户。”在易用性和安全性之间需要进行权衡。您必须根据上下文进行权衡-安全对您和您的用户是否足够重要,以证明给您带来不便?

繁花如伊

使用新密码发送电子邮件。到达时强制更改密码,然后输入新密码。这样可以确保需要密码的人是唯一进入该帐户的人。如果嗅探到电子邮件,则可以(当然)有人进入该帐户,但是真正的参与者会立即发现此消息(因为您刚发送给他们的密码不起作用)。还将密码更改的确认发送给用户。如果有人得到了新密码,然后收到一封电子邮件,写着“谢谢您更改密码”,那么他们会很困惑,如果不这样做,他们将与管理员交谈。
打开App,查看更多内容
随时随地看视频慕课网APP