用户注册表是否应表明电子邮件地址是否已被使用?

ken*_*ner 8 security user-registration

将用户帐户限制为唯一的电子邮件地址似乎很常见.所以在我的用户注册表单上,我正在进行电子邮件验证并返回一条消息

已经为foo@bar.com注册了一个帐户

然后我突然想到攻击者可以使用此表单来确定有关我的用户的信息.是否有另一种方法可以在不影响安全性的情况下向用户提供验证消息?在我看来,它没有任何解决方法.

max*_*x_i 7

罗布·纳皮尔的回答是正确的。您应该决定您的用户是否确实需要这种匿名性,但代价是降低用户体验(在大多数情况下他们不会关心)。

\n

以下是一些知名人士的做法:

\n
    \n
  • 亚马逊AWS:Error: Account with this email already exists.
  • \n
  • 苹果ID:This email address is not available. Choose a different address.
  • \n
  • 云耀:A user with that email already exists (Code: 1079)
  • \n
  • 领英:Someone\'s already using that email.
  • \n
  • 堆栈溢出:Forgot your account\xe2\x80\x99s password or having trouble logging into your Team? Enter your email address and we\xe2\x80\x99ll send you a recovery link.
  • \n
\n


Rob*_*ier 5

对于大多数类型的网站,我希望明确隐藏这些信息将是一个糟糕的用户体验权衡.更好的解决方案是使用CAPTCHA来帮助防止电子邮件地址的战争拨号.

例外情况是攻击者正在寻找有关特定用户的信息(而不仅仅是试图找到"某个帐户").例如,如果您的网站迎合对匿名感兴趣的人,并且有攻击者非常有兴趣了解某个特定用户是否在使用该网站,那么该方法应该是不同的.我的方法可能是向地址发送一封电子邮件,说明"已注册"错误.用户的匿名兴趣将超过用户体验烦恼.