0

有很多类似的问题,但我没有看到这个:

我正在使用用户电子邮件作为用户名 - 因为它们是独一无二的但令人难忘(未显示)。
以及用于“检索”的 send_a_new_random_password。

但是,这将允许心怀不满的前任一次又一次地更改用户密码:(

为了解决这个问题(它来了),我想在用户记录中有 2 个“正确”密码
- PASSWORD 和 newPASSWORD (都用 PHPass 0.3 散列)

在下一次成功登录(同时检查两者)时,我将使用过的密码保存为密码,并转储 newPASSWORD - 从而使 click_this_obscure_URL_to_enable 进程变得不重要:)

我忽略了什么吗?

4

2 回答 2

6

这个想法是不实际重置帐户的密码,而是发送一封包含重置链接的确认电子邮件。这样,只有有权访问电子邮件帐户的人才能真正执行重置。(除非心怀不满的前任也可以访问电子邮件:P)

于 2011-03-17T09:34:27.037 回答
1

如果用户单击密码更改电子邮件中的链接,则仅激活新密码是标准做法。您的机制看起来与此非常相似。你的机制对我来说看起来很好。

如果您不想在电子邮件中发送密码(毕竟它是未加密的),您需要使用重置链接机制或使用用户必须在下次登录时更改的临时密码。但我认为对于大多数通过电子邮件发送密码的网站来说,您最不担心的安全问题。

于 2011-03-17T09:33:59.787 回答