【问题标题】:What are the pros and cons of using an email as a username? [closed]使用电子邮件作为用户名的优缺点是什么? [关闭]
【发布时间】:2010-11-21 04:10:40
【问题描述】:

您知道大多数登录表单都使用用户名和密码。

还有一些通过电子邮件发送。它们的优点和缺点是什么?这是我想到的。

电子邮件的优点

  • 要记住的事情少了(与记住用户名相反)
  • 每个用户都应该是唯一的
  • 您需要让他们注册的少一件事

缺点

  • 如果他们更改电子邮件 - 可能会尝试使用他们的新电子邮件访问网站吗?
  • 如果忘记密码 - 上面写着“请输入您的电子邮件”并且他们已经放弃了旧电子邮件 - 他们可能会被卡住。

我确实认为这与编程有关,因为 Web 应用程序的易用性是不容忽视的重要因素。

【问题讨论】:

  • 对于忘记密码的骗局,如果他们已经放弃了旧的电子邮件地址,那么电子邮件地址是否是用户ID无关紧要。
  • 我同意你的观点。电子邮件是自然的用户名:设计独特。我不知道出了什么问题。在任何情况下,下一个用户 id 都是 OpenID。
  • 添加一个可能的问题:如果通过某种方式,旧帐户有缺陷并且必须删除,如果您使用电子邮件作为用户名系统,您将很难“创建新用户”使用相同的电子邮件”与“在系统中跟踪旧用户”

标签: email login


【解决方案1】:

另外要记住的是,如果其他用户也可以看到“用户名”,由于隐私问题,您不应该使用邮件地址。

【讨论】:

  • 并非总是如此。用户名永远不应该是面向公众的名称。这适用于电子邮件作为用户名或只是用户名。将用户名(或电子邮件)与公共“存在”名称分开。
  • 您可以使用电子邮件和密码进行身份验证,并使用“显示名称”进行表示
【解决方案2】:

使用电子邮件作为用户名时可能出现的另一个问题是“用户收集”攻击。 例如,如果您有一个“更改电子邮件”页面或在创建新用户时,如果新用户插入一个已经存在的电子邮件,那么应用程序将不得不发回一个错误。因此,攻击者可以通过执行一个简单的脚本来发现应用程序中的所有用户(如果用户不存在,它将被添加)

【讨论】:

  • 这可以这样解决:网站不应该告诉电子邮件是否存在。它应该简单地向新输入的电子邮件发送一封带有适当文本的邮件,其表述取决于邮件是否存在。站点的即时响应应该通知邮件已经发送,并告诉用户检查他的邮箱。
  • 这可能会被 fail2ban 之类的东西缓解 .. 但是用户可以再次通过分布式网络收集来解决这个问题 .. 但是这又会变得棘手。
【解决方案3】:

OpenID 和 OAuth .....看起来更好。为他们管理的用户更少,而且更改时迁移到一个地方更容易。

是的,你必须小心。我坚持认为备用电子邮件地址(一个附加的个人资料字段)与他们用于用户的电子邮件地址不同。许多系统还有一些其他字段,如果事情变得非常棘手,可以使用这些字段来验证自己。但此时,它经常需要一个技术支持电话。

根据系统类型,使用电子邮件可能存在安全漏洞。我知道你的电子邮件地址,我不知道你可能会在用户名提示中输入什么。如果能够轻松猜出用户名是个问题,那么我不会使用电子邮件地址。

【讨论】:

  • 为了让事情变得更简单,我可以建议使用像 Auth0.com 这样的第 3 方服务,因为他们已经了解了不同 OAuth 提供者的所有管道......并且他们支持其他身份验证方法,例如活动目录。您的应用可以使用便携、安全且无需透露用户信息的 JWT。
【解决方案4】:

我认为在安全性方面利大于弊。许多公司回收电子邮件地址,因此,如果用户不再使用电子邮件地址(删除他/她的电子邮件帐户),它可能会被回收以供任何其他人使用。

在这种情况下,任何其他人都可能会收到您组织的定期通信。这让新用户知道该帐户的前一个用户曾经登录过您的组织。如果您使用简单的基于电子邮件的密码重置,无需额外检查(例如安全问题),那么他们需要做的就是使用他们现在拥有的电子邮件地址恢复密码,并且他们可以访问该人的帐户。

我希望你不是为银行编程。 USBank.com 使用用户名而不是电子邮件。我还有一个信用合作社的帐户,他们也不使用电子邮件,而是使用帐号,他们从不回收。

如果安全是重中之重,请不要使用电子邮件。

【讨论】:

  • 我认为通常会有一个Forgot your password? 链接发送您的用户名和重置密码链接。因此,即使您通过用户名(而不是电子邮件)登录,如果电子邮件地址被回收,您也将处于危险之中。 (您不会因为没有定期发送显示登录标识符的通信而认为自己安全吗?)
  • @KajMagnus :: 是的,但至少您仍然可以进入您的帐户,将电子邮件地址更新为您自己的电子邮件地址。如果应用程序向原始电子邮件地址发送一封电子邮件,要求确认应该更改电子邮件地址[我以前见过],那么你会被搞砸的。此外,它只会 [通常] 发送重置密码链接如果您可以验证另一个安全检查 - 类似于客户编号(如 Go Daddy 所做的)或 PIN 或您的电话号码等等。允许在没有二次检查的情况下重置密码是愚蠢的。
【解决方案5】:

只要您提供更改电子邮件地址的方法,电子邮件就是一个好的用户名。当您使用电子邮件作为用户名创建帐户时,LinkedIn 会提供此功能。它们还允许您(一旦登录)更改主电子邮件地址,然后将您的用户名更改为该电子邮件地址。

只要你做这样的事情,你就应该准备好了。

【讨论】:

  • 如果发生某些事情并且由于密码丢失而无法恢复电子邮件地址,我建议您使用某种形式的电子邮件或电话通信来恢复帐户。在我看来,不管你是使用用户名还是电子邮件作为用户名,你都应该拥有这个。使用帐户人口统计数据来确认用户就是他们所说的人。
【解决方案6】:

电子邮件(专业版) - 减少创建帐户的垃圾邮件,因为您可以通过向他们发送电子邮件来确认他们的帐户。

【讨论】:

  • 您可以要求一个电子邮件地址链接到该帐户并通过该电子邮件地址验证该帐户。如果您有用于身份验证的用户名,这不会改变。不过我推荐它。
  • 几乎每个您注册的网站都会要求提供电子邮件地址,无论它是否用作用户名。
  • 只需几秒钟即可创建垃圾邮件帐户并设置自动回复。如果您曾经管理过任何类型的在线论坛,之前用户需要回复电子邮件以激活他们的帐户,您会很快发现它根本不会减缓垃圾邮件发送者的速度。
【解决方案7】:

缺点: 当您需要在网站和电子邮件等应用程序之间共享用户名时,可能会引发安全问题。例如,如果电子邮件用于用户名,则有权访问网站中用户名的任何人也将有权访问电子邮件地址。通常这不是问题,但也可能是。将用户名和密码在应用程序之间分开通常是一个很好的策略,除非有一个通用的登录过程,或者除非安全性并不重要。

【讨论】:

  • 一般来说,如果他们可以访问用户名,他们也可能会访问电子邮件地址,因为访问用户名通常需要一些数据库可访问性。如果他们可以访问数据库,那么他们可以访问的不仅仅是用户名。至少这是我的意见。
【解决方案8】:

CON:它在用户和垃圾邮件发送者之间少了一层绝缘层。如果有人以某种方式获得了完整的用户名列表,他们将能够向您的所有用户发送垃圾邮件。但如果网站使用用户名,将电子邮件作为辅助字段,则无需担心。

当然,除非他们获得所有用户数据,但无论如何这都是一个更大的问题。

【讨论】:

    【解决方案9】:

    我已经为 b2b 应用程序这样做了,当用户离开客户公司而其他人使用旧的停用电子邮件地址作为登录名并且故意不更改它以避免收到我们的电子邮件时,这真的很痛苦。

    我们最终会收到退回的密码重置电子邮件并支持呼叫以解决问题。

    【讨论】:

      【解决方案10】:

      如果您要允许公开帐户的另一个注意事项是,不需要用户名意味着您必须允许“显示名称”(您当然不会显示电子邮件地址),但如果您的用户想要要使用他们的真实姓名,可能会出现重复姓名,这可能会导致混淆(想想两个没有图片但名字相同的 SO 评论者,假设它是同一个人,除非您点击完整的个人资料)。在这种情况下,您要么必须强制使用唯一的显示名称(这可能会阻止某人使用真实姓名),要么只是接受您可能有两个 Bob Johnson 闲逛令人困惑。

      【讨论】:

        【解决方案11】:

        当您使用电子邮件地址时,成员可以更轻松地更改其用户名,例如当 pwng0d69 想要被称为 Jon Skeet 时。 但是,对于每个要求我提供电子邮件地址的网站,我个人都对另一个潜在的垃圾邮件来源感到畏缩。

        使用开放 ID :)

        【讨论】:

          【解决方案12】:

          专业人士:似乎有些服务正在考虑将电子邮件作为在网络上识别特定用户的标准:

          例如http://www.techcrunch.com/2009/08/14/google-points-at-webfinger-your-gmail-address-could-soon-be-your-id/

          缺点: 这还没有发生,还有很多其他的选项,比如 OpenAuth 和 OpenID,现在已经有了一些支持(你也可以使用 Facebook 传播登录)。

          只需根据应用的目标受众来定制您的身份选择。

          【讨论】:

            【解决方案13】:

            在公司所有权发生变更之前,我们使用了 Arena Solutions 的“产品生命周期管理”软件。这是其中一项交易,您的所有敏感公司数据都托管在离岸某个地方,并且可以通过浏览器从任何地方访问。

            Arena PLM 被吹捧为高度安全,但(默认)行为是要求电子邮件地址作为用户名。它允许使用有有效期的强密码,但是当我的密码过期时,我被告知我可以选择另一个密码,或者继续使用旧密码!

            我认为安全声明是基于使用 SSH 进行数据传输,但在我看来,一个坚定的人可以登录,因为

            • 用户名是公开的公司电子邮件地址,并且
            • 有很多时间来猜测密码,因为懒惰的用户不会选择新密码。

            当然,这意味着和更新强密码必须强制执行

            【讨论】:

              猜你喜欢
              • 2010-10-13
              • 2011-04-01
              • 2010-09-12
              • 2011-12-28
              • 2011-12-14
              • 1970-01-01
              • 2016-02-08
              • 1970-01-01
              • 2019-11-25
              相关资源
              最近更新 更多