首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >最好的“忘记密码”方法是什么?

最好的“忘记密码”方法是什么?
EN

Stack Overflow用户
提问于 2009-05-23 14:42:22
回答 17查看 13.4K关注 0票数 54

可能重复:

Forgot Password: what is the best method of implementing a forgot password function?

我在设计一个社区网站。

我想建立一个“忘记我的密码”功能。

环顾不同的站点,我发现他们使用了的三个选项中的一个

  • 向用户发送一封电子邮件,其中包含一个指向唯一的隐藏URL的链接,该URL允许用户更改其密码(Gmail和Amazon)和(www.teach12.com)

向用户发送一封带有随机生成的新密码的电子邮件<>E218 (Wordpress)

  • send

user (Wordpress)

  • send current password (www.teach12.com)

选项#3对用户来说似乎是最方便的,但由于我将密码保存为MD5哈希,我看不出选项#3如何对我可用,因为MD5是不可逆的。这似乎也是不安全选项,因为它意味着网站必须以明文形式将密码保存在某个地方,并且至少明文密码是通过不安全的电子邮件发送给用户的。还是我错过了什么?

因此,如果我不能执行选项#1,那么选项#2似乎是编写最简单的,因为我只需更改用户的密码并将其发送给他。虽然这是,但有点不安全,因为您必须通过不安全的电子邮件传递实时密码。然而,这也可能被麻烦制造者滥用,通过键入随机电子邮件和不断更改不同用户的密码来骚扰用户

选项#1似乎是最安全的,但需要一些额外的编程来处理过期等隐藏的网址,但它似乎是大型网站使用的。

您有使用/编程这些不同选项的经验吗?有没有我错过的选项?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2009-05-23 14:45:22

4)将两个随机金额记入他们的银行账户,并要求他们输入这些金额。

5) Snail邮寄给他们一些新密码,并要求他们输入密码。

6)让他们发短信或拨打某个号码,并使用他们在文件中注册的移动电话为电话号码输入一些值。

7)通过将密码管理外包给OpenID提供商,如Stack Overflow、Facebook、博客引擎和其他正在开始做的事情,彻底摆脱密码管理问题。

除此之外,使用选项#1或#2以及添加的功能,这两个功能都将在一个小时内过期。

票数 33
EN

Stack Overflow用户

发布于 2010-08-05 01:00:50

我对将#1和#2描述为等同的答案的好评感到震惊。他们根本就不是。向用户发送更改其密码的短期链接是最方便、最常用、最安全的方法,而且不涉及带外交互(邮件、文本消息等)。以下是几个原因:

  1. 通过忘记密码链接设置临时密码,使用户能够有效地更改用户的密码,并在知道用户登录的情况下将该用户锁定在其帐户之外。有了链接,用户只是知道有人在胡闹,他们的访问不会受到影响。
  2. 密码重置链接只在很短的一段时间内有效,所以有一个非常小的窗口供攻击者攻击。即使他们这样做了,用户也会知道,因为如果攻击者拦截重置链接并使用它来更改密码,重置链接将不再起作用。如果用户没有立即更改分配的新密码,截取密码的攻击者可以无限期地悄悄模拟用户。所以最大的区别是,虽然黑客可以拦截重置密码链接电子邮件,但如果他们使用该链接更改用户的密码,用户将知道有问题,因为链接不起作用,他们将生成另一个密码重置request.
  3. Easier使用-用户只需单击其电子邮件中的链接,而不是键入您生成的新的随机密码。

安全问题通常会降低网站的安全性,而不是增加安全性--它们是另一个攻击载体,而且往往是最薄弱的环节。我强烈推荐阅读The Web Application Hacker's Handbook,这是关于这个主题的很好的讨论。

票数 9
EN

Stack Overflow用户

发布于 2009-05-23 14:48:20

请注意,选项#2还要求您跟踪旧密码,如果新的随机密码在24小时内未使用,则会使其过期。

否则,我可能会反复向您发送一个新的随机密码来惹恼您--如果您不在您的电子邮件附近,您可能不知道为什么您不能使用常规密码登录。

另外,请避免需要一个“身份验证问题”。这些问题的答案通常比真正的密码更容易猜测/查找--因此每个人都可以将自己标识为我。有关这是多么不安全的最新示例,请参阅Sarah Palin的故事。

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

https://stackoverflow.com/questions/901639

复制
相关文章

相似问题

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