忘记密码并显示帐户是否存在

信息安全 密码 用户枚举 重设密码
2021-08-14 23:00:59

因此,当您点击忘记密码的链接并输入您的电子邮件地址时,网站(以及与我交谈过的其他程序员)似乎是两种心态之一;

  • 通知用户电子邮件地址是否与数据库中的一个匹配,并根据此建议是否设置了重置密码电子邮件;
  • 立即回复“已发送电子邮件”或“如果此用户存在,我们已向您发送密码重置电子邮件”,无论是否发生匹配导致电子邮件已发送。出于安全原因,这样做(显然)。

我自己实现了后者,并且通常发现它引起了用户的烦恼:

  1. 如果用户错误地输入了他们的电子邮件地址,他们会被告知已发送一封电子邮件,但他们永远不会收到一封。
  2. 如果他们输入的电子邮件地址与注册时的电子邮件地址不同,他们将再次收到电子邮件。
  3. 上述组合可能导致多次尝试但未收到密码重置电子邮件,从而导致放弃。

最后,在调查使用第二种情况的流行网站后,我发现尝试在这些网站上注册一个帐户,其中输入的电子邮件地址与现有帐户匹配,“此电子邮件地址已在使用中,或不可用”类型无论如何都会显示消息。

因此,不透露密码重置电子邮件是否与帐户匹配有什么好处?

4个回答

我认为这通常对合法网站的合法用户没有帮助是错误的 - 但如果您的网站提倡匿名,那么告诉随机网络用户某个特定电子邮件地址是否有效将是泄密。

根据注册网站的难易程度,您可能不会通过告知是否发送电子邮件来泄露信息。

如果有人可以创建一个帐户,它可能会知道电子邮件是否正在使用。因此,归根结底,额外的烦恼并没有给您带来任何额外的安全性。

如果用户可以提供用户名或电子邮件,那么您不应该泄漏的是电子邮件。如果您告诉用户令牌被发送到哪个电子邮件,这会降低安全性,因为如果这些电子邮件不公开,则可以用来从用户那里获取电子邮件。

值得考虑的是,在某些司法管辖区,透露特定电子邮件地址的持有人是否在您的网站上拥有帐户的信息可能是非法的。例如,在英国,您应该在透露此信息之前征得用户的同意。

一种解决方法是在显示帐户是否存在之前,要求提供一些较低安全性的信息,例如出生日期、母亲的娘家姓等,作为该过程的一部分。

用户隐私更重要的网站,如果用户尝试使用电子邮件和错误密码登录,最好不要让他知道电子邮件是否存在。只是让他知道它的错误并可以要求输入密码手机号码/用户名。

回答

这是为了尊重现有用户的隐私。否则其他人将能够知道用户是否已注册