首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忘记密码:实现忘记密码功能的最佳方法是什么?

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

Stack Overflow用户
提问于 2009-02-07 02:10:38
回答 7查看 21.8K关注 0票数 53

我想知道在网站上创建忘记密码功能的最佳方法是什么。我在这里见过不少,这里有几个或几个组合:

  • 密码问题/回答(1或更多)
  • 用新密码发送电子邮件
  • 屏幕上输入新密码
  • 通过电子邮件确认:必须单击链接才能获得新密码
  • 页面需要用户输入新密码。

您将添加到忘记密码函数中的哪些组合或附加步骤?我想知道他们是如何申请新密码的,以及他们是如何得到新密码的。

我操作的主体是不能检索密码的;必须给出/生成一个新密码。

编辑我喜欢科里所说的如果用户名存在的话不显示,但我想知道该显示什么。我认为一半的问题是,用户忘记了他们使用的电子邮件地址,其中显示某种类型的“不存在”消息是有用的。有什么解决办法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-02-07 02:15:52

  1. 我个人会发送一封电子邮件与一个链接到一个短期网页,让他们设置一个新的密码。将页面命名为某种UID。
  2. 如果你对此不感兴趣,那么向他们发送一个新密码并强迫他们在第一次访问时更改密码也是一样的。

备选案文1要容易得多。

票数 48
EN

Stack Overflow用户

发布于 2009-02-07 04:44:16

几个重要的安全问题:

  • 密码问题/答案实际上降低了安全性,因为它通常会成为过程中最薄弱的环节。常常比密码更容易猜出某人的答案--特别是如果没有仔细选择问题。
  • 假设电子邮件在您的系统中充当用户名(通常是出于各种原因推荐的),对密码重置请求的响应不应该指示是否找到了有效的帐户。它应该简单地声明密码请求电子邮件已经发送到提供的地址。为什么?表示电子邮件确实/不存在的响应允许黑客通过提交多个密码请求(通常通过HTTP代理(如burp套件)并注意是否找到电子邮件来获取用户帐户列表。为了防止登录获取,您必须确保没有任何登录/auth相关功能提供任何指示,说明在登录/通过重置表单中输入了有效用户的电子邮件。

有关更多背景信息,请查看网络应用黑客手册。这是一个关于创建安全身份验证模型的优秀读物。

编辑:关于编辑中的问题-我建议:

“一封密码请求电子邮件已经发送到您提供的地址。如果邮件没有很快到达,请检查您的垃圾邮件文件夹。如果没有收到电子邮件,则在您提供的电子邮件中不存在帐户。”

这里有一个在易用性和安全性之间的权衡。您必须根据上下文来平衡这一点--安全性对您和您的用户是否足够重要,从而证明这种不便是合理的呢?

票数 25
EN

Stack Overflow用户

发布于 2009-02-07 02:15:38

发送带有新密码的电子邮件。

当密码到达并输入新密码时,强制更改密码。

这确保了想要密码的人将是唯一进入该帐户的人。

如果电子邮件是嗅探,有人可以进入帐户(当然),但真正的一方会立即发现(因为他们的密码,你刚刚发给他们不起作用)。

还向用户发送密码更改的确认信息。

如果有人得到了新密码,然后收到一封电子邮件,上面写着“谢谢你更改密码”,他们会感到很困惑,如果他们不这么做的话,他们会和管理员交谈。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/522967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档