电子邮件地址确认链接应持续多长时间?为什么它必须过期?


34

用户注册电子邮件后,用链接发送给他们,他们必须点击激活该帐户。我知道其他网站对用户点击链接的时间有限制,否则链接将过期。想想为什么这是必要的?是否阻止攻击者创建他不拥有注册电子邮件的帐户,因为他可以生成任意数量的帐户,并有无限的时间来猜测激活链接?

如果有必要,用户需要多长时间点击链接?

36

大多数网站只允许一个帐户,这是有道理的,因为大多数的时候,用户只需要一个账号使用的E-mail地址。因此,需要一个唯一的电子邮件地址。

话虽这么说,一旦用户注册,但只需要确认他的E-mail地址,您需要在数据库中插入用户的电子邮件地址,不允许别人或非常相似的人再次注册。如果您未处理电子邮件确认过期,则有人可以注册其他人的电子邮件地址,并且永远不会确认哪些人会锁定合法用户的电子邮件,如果他想要注册您的网站的话。

如果在给定的时间长度用户还没有证实他的电子邮件地址,你想让它再次可用,如果它是不是真的他的地址,或者,如果他想再次注册以后。考虑一个用户由于错误而输入了错误的电子邮件地址的情况。

现在的时间长短合适,我会说,这取决于网站的类型,它是。我没有看到允许超过几个小时的时间,因为如果用户能够注册到您的网站,他应该能够快速访问他的电子邮件地址。考虑用户忘记了他的电子邮件地址密码并且无法访问它的情况。他可能需要通过一些步骤来取回密码,这可能需要一段时间。但是,如果他必须再次注册,会不会真的有害?再一次,这取决于网站。

+1

大多数网站都有“重新发送验证电子邮件”功能(或者是显式链接,或者是当用户尝试使用同一封电子邮件注册两次时自动发送)。此功能是必需的,因为验证电子邮件可能会在途中丢失(垃圾邮件过滤器等)。现在,如果我总是可以重新发送验证电子邮件,那么有人会将我锁定? 16 11月. 132013-11-16 23:42:33


6

将资源耗尽攻击排除在等式之外,没有理由让这些链接过期。

这就是说,你应该想想99%的用户如何去使用你的网站,并优化了点。很少有人会在他们的收件箱中找到一个18个月的激活链接,并记住您的网站,并仍然觉得它有用,并点击该链接。

随着激活链接或代码永远持续下去,你必须永远保持它们。如果您的数据库中有很多热门网站,

什么是最坏的情况下,如果你到期后10天的链接,他们必须再次单击“创建帐户”?

顺便说一句,对于用户B阻断兴奋,因为用户A已经使用自己的电子邮件地址(无论是错误或恶意)是一个非常糟糕的体验。这不是关于谁先到达那里,而是关于谁实际拥有电子邮件帐户。


3

我同意this回答(+1)。大多数网站需要有'重新发送验证电子邮件'功能,因为原始电子邮件可能会在途中丢失或被垃圾邮件过滤器阻止。这意味着,与most upvoted answer相反,没有人可以锁定我的电子邮件,因为我总是可以将验证电子邮件重新发送到我的地址。因此,验证链接到期的唯一真正原因是存储资源:我们希望移除未经验证的帐户(链接),以避免存储无限增长或放慢速度。因此,我们需要一个明智的方式来移除未过期的未过帐帐户(例如,自上次验证电子邮件发送后的48小时)。