从电子邮件自动登录用户是一个坏主意吗?

dav*_*nal 4 security email email-validation

对于我们开发的许多网站,我们会验证用户的电子邮件地址.通常工作流程如下:

  1. 用户注册站点(激活电子邮件发送时带有激活链接)
  2. 用户验证电子邮件地址(点击上述链接)
  3. 用户必须登录到站点才能使用它(假设他们尚未登录)

客户经常抱怨这个过程笨重而且有些混乱,我同意.建议的解决方案是删除步骤3并在步骤2之后自动登录用户.

我不确定它是否重要(因此问题!),但我一直警惕自动记录这样的用户.在实施建议的解决方案之前,我应该考虑多少安全风险?

这也适用于密码重置等情况,用户可能会自动登录,然后更改密码.

为了这个问题,我们假设验证电子邮件是一项艰难的要求.我知道有些情况下这不是必要的,但让我们谈谈它的存在.

dav*_*off 5

这取决于您的应用程序.如果您经营银行网站,您永远不会这样做.如果您运行的是Flickr,Facebook或其他各种社交网站,您可能会这样做.

您可能想要考虑的另一件事是提供有限的可访问性.我知道亚马逊会在他们网站的部分内容中这样做.用户可以像登录一样浏览网站,但只能浏览一个点.在他们可以做任何与采购和订单相关的事情之前,他们必须提供他们的密码.

编辑:另一个问题,刚刚发生在我身上.确保您可以使网址无效.在数据库中生成您放入电子邮件中的令牌,然后有办法撤消这些令牌.一种方法是在所有用户记录上放置一个计数器,然后在生成电子邮件时将该计数器值复制到令牌表中.如果您需要快速撤消大量令牌,则可以简单地增加用户记录上的计数器.然后,您可以轻松地看到令牌的计数器与用户计数器不匹配,因此您可以拒绝令牌.


Jes*_*sta 5

我会确保电子邮件中链接的有效性有时间限制,并使其仅对一次点击有效。