可能重复:
Forgot Password: what is the best method of implementing a forgot password function?
我在设计一个社区网站。
我想建立一个“忘记我的密码”功能。
环顾不同的站点,我发现他们使用了的三个选项中的一个
向用户发送一封带有随机生成的新密码的电子邮件<>E218 (Wordpress)
user (Wordpress)
选项#3对用户来说似乎是最方便的,但由于我将密码保存为MD5哈希,我看不出选项#3如何对我可用,因为MD5是不可逆的。这似乎也是不安全选项,因为它意味着网站必须以明文形式将密码保存在某个地方,并且至少明文密码是通过不安全的电子邮件发送给用户的。还是我错过了什么?
因此,如果我不能执行选项#1,那么选项#2似乎是编写最简单的,因为我只需更改用户的密码并将其发送给他。虽然这是,但有点不安全,因为您必须通过不安全的电子邮件传递实时密码。然而,这也可能被麻烦制造者滥用,通过键入随机电子邮件和不断更改不同用户的密码来骚扰用户。
选项#1似乎是最安全的,但需要一些额外的编程来处理过期等隐藏的网址,但它似乎是大型网站使用的。
您有使用/编程这些不同选项的经验吗?有没有我错过的选项?
发布于 2009-05-23 14:45:22
4)将两个随机金额记入他们的银行账户,并要求他们输入这些金额。
5) Snail邮寄给他们一些新密码,并要求他们输入密码。
6)让他们发短信或拨打某个号码,并使用他们在文件中注册的移动电话为电话号码输入一些值。
7)通过将密码管理外包给OpenID提供商,如Stack Overflow、Facebook、博客引擎和其他正在开始做的事情,彻底摆脱密码管理问题。
除此之外,使用选项#1或#2以及添加的功能,这两个功能都将在一个小时内过期。
发布于 2010-08-05 01:00:50
我对将#1和#2描述为等同的答案的好评感到震惊。他们根本就不是。向用户发送更改其密码的短期链接是最方便、最常用、最安全的方法,而且不涉及带外交互(邮件、文本消息等)。以下是几个原因:
安全问题通常会降低网站的安全性,而不是增加安全性--它们是另一个攻击载体,而且往往是最薄弱的环节。我强烈推荐阅读The Web Application Hacker's Handbook,这是关于这个主题的很好的讨论。
发布于 2009-05-23 14:48:20
请注意,选项#2还要求您跟踪旧密码,如果新的随机密码在24小时内未使用,则会使其过期。
否则,我可能会反复向您发送一个新的随机密码来惹恼您--如果您不在您的电子邮件附近,您可能不知道为什么您不能使用常规密码登录。
另外,请避免需要一个“身份验证问题”。这些问题的答案通常比真正的密码更容易猜测/查找--因此每个人都可以将自己标识为我。有关这是多么不安全的最新示例,请参阅Sarah Palin的故事。
https://stackoverflow.com/questions/901639
复制相似问题