使用电子邮件地址作为用户ID的优缺点是什么?

74

我正在创建一个需要注册/认证的Web应用程序,并考虑使用电子邮件地址作为唯一的用户ID。以下是我看到的优缺点(更新后包含回复):

优点

  1. 在注册过程中少填一个字段(只需输入电子邮件地址、密码和确认密码)。我非常喜欢极简注册。

  2. 电子邮件地址更容易记住。(感谢MitchJeremy

  3. 您不必担心您喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。(感谢TStamper

缺点

  1. 用户每次登录时需要输入更多内容。

  2. 如果用户想要多个账号怎么办?他们需要另一个电子邮件地址。(我是否希望用户能够创建多个帐户?)

  3. 如果潜在攻击者知道目标的电子邮件地址,则很容易猜到登录ID。(感谢Vasil

  4. 用户可能会倾向于使用他们用于电子邮件帐户的相同密码,这是不安全的。(感谢Thomas

  5. 如果您经常更改电子邮件地址,则可能难以记住长时间停顿后您用于注册网站的地址。(感谢Software Monkey

  • 黑客可以通过垃圾注册并利用“电子邮件已被使用”的回应来生成有效电子邮件列表。(感谢David)

  • 并非每个人都有电子邮件地址。(感谢Nicholas)

  • 如果我使用电子邮件作为ID,我会提供一种机制,允许在用户更改地址时更改它。在这种情况下,用户不会向公共网站发布内容,因此不需要单独的用户名来保护电子邮件地址(但这是考虑其他网站时需要考虑的一些事项)。

    另一个选择是实施OpenID(这是另一个争论话题)。

    这似乎对Google有用,但他们的服务紧密集成。在我的分析中,我错过了什么?你有任何建议吗?有人有经验分享吗?

    最终编辑

    感谢大家的回复。我决定使用电子邮件作为ID,然后允许在注册后创建用户名以用于登录。这样可以在保持注册尽可能简短的同时提供一些灵活性。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用用户名登录并更新即可)。我还将实施方法来防止从注册和登录系统中强制执行电子邮件地址的攻击(主要是在重复尝试后冷却一段时间)。


    1
    你的第一个 PRO 并不是在所有情况下都正确,因为用户在你的网站上发布内容仍然需要用户名。 - Sandor Davidhazi
    你应该编辑你的问题,列出回答中的优缺点简表。 - Lawrence Dol
    ID/密码组合不正确。请重试或重置您的密码。无论您使用哪种方法,请记得在“重置密码”页面中使用一些反爬虫措施。 - Francisco Presencia
    16个回答

    33

    个人而言,我更喜欢使用我的电子邮件地址作为用户名。这样就少了一件需要记住的事情,而且我也不必担心我的首选名称已经被占用。

    仅供参考!


    29

    我认为你漏掉了一个重要的事项:

    用户很可能会记住他们的电子邮件地址;而且由于电子邮件地址是唯一的,他们永远不必担心他们所喜欢的用户名已经被使用了。


    14
    作为网站用户,我可以告诉你,我讨厌记住不必要的用户名。我不使用独特的标识或任何东西,所以我永远记不住我使用过哪个我的名字变体还没有被占用。我更愿意输入我的电子邮件地址。
    另外,我喜欢OpenID。

    14
    你是一个网站用户吗?;) - core
    我的用户名比电子邮件地址少得多。 - Sentinel

    12

    缺点

    1. 当相同的密码用于电子邮件账户时,一旦其中一个账户被攻破,另一个账户也会被攻破。

    这是一个需要提高重视的问题。每个人都应该为他们的电子邮件账户使用独特的密码。 - BC.
    1
    他们应该这样做,但他们并没有。悲伤却是事实。 - Thomas
    2
    使用这种方法并不是问题,而是对用户造成了问题。因此,我不认为它是缺点。 - Cadoo
    如果你的电子邮件密码被泄露,那么你将面临很大的麻烦,这是你自己的问题,而不是我的问题(我是使用电子邮件进行登录的网站的管理员)。 - core
    2
    当电子邮件与账户相关联时,通常情况下这是正确的,不仅在使用电子邮件作为登录名时如此。大多数服务提供了一种重置密码的方式,如果您控制了注册该账户的电子邮件地址,则可以使用该方式。 - Henk
    @Henk:你说得对。我以为这是单向的,但是当然电子邮件地址在用户的个人资料信息中,所以入侵网站上的帐户也意味着他们可以进入你的电子邮件。只是有点不那么直接。 - Thomas

    11

    缺点:并非每个人都有电子邮件地址。考虑如果您的数据库被内部应用程序访问。如果您正在经营商店,人们将通过电话下订单并拒绝提供电子邮件地址。因此,虽然将电子邮件地址作为默认用户ID很酷,但请确保允许替代方式进入系统。(当然,这取决于上下文。)

    我学习到了这一点。


    显然,您的答案与电子商务网站有关,在大多数其他网站上,通常会要求用户通过向其电子邮件地址发送带有激活链接的消息来验证或确认其帐户,总之,无论如何都需要一个电子邮件地址。 - Waleed Eissa
    2
    我们经营一家电子商务网站,我们使用电话号码<<phonenumber>>@<<ourdomain>>来注册用户。99.9%的人都有电子邮件,所以这不是我们必须经常做的事情,但它确实有效。 - Tommy

    4

    我倾向于不使用正反列表,而是尝试考虑好处和挑战。

    挑战:

    有些用户会想要使用他们的ISP电子邮件地址。仅链接到电子邮件可能对那些忘记在更改ISP之前更新所有已注册网站的电子邮件的用户来说很困难。

    相反:

    您应该考虑允许用户提供多个地址,以及用户选择的ID,然后让用户决定他们想要做什么。也可以考虑允许用户提供OpenID帐户。


    4

    一个你可能要考虑的设置:同时具有用户名和电子邮件。电子邮件用于登录并始终保持私密,用户名用于在任何公共交互中识别用户,例如发表评论。这样做会更安全一些,因为用户登录凭据的两个部分都是私有的,而如果您在登录和公共身份验证中使用用户名,则已知登录凭据的一半。

    我完全同意您对大多数情况下最小化注册的看法,但根据您正在做的事情,您可能需要权衡一下这一点,以增加用户的安全性。四个字段对于注册来说并不过分(用户名、电子邮件、密码、确认密码),如果您感到特别有冒险精神,可以通过删除确认密码字段将其缩减为三个,或者通过向他们发送可以稍后更改的密码来将其缩减为两个。


    1
    你所指的用户名通常被称为“显示名称”。 - KajMagnus

    3

    问题: 如果我更改我的电子邮件地址,那么所有我的帐户名称都将变得无效。我的名字不会改变,但是我的电子邮件经常会更改。有时我会在几年后重新访问一个网站,却被困住了......两年前我的电子邮件地址是什么?


    我已经使用同一个主要电子邮件地址十年以上了,之前使用的那个地址用了七年。我想我可能是极端情况,但人们真的会经常更换他们的电子邮件地址吗? - Fred Nurk
    1
    @Fred:是的,在我拥有自己的域名之前,我的电子邮件与我的互联网服务提供商绑定(我不喜欢HotMail这样的服务),因此随着我从拨号上网到DSL再到WiFi更换服务提供商,我的电子邮件地址也多次更改。 - Lawrence Dol
    1
    我仍然认为更改电子邮件对于大多数用户来说并不是经常发生的情况。但我看到了这个问题的一点:如果是这种情况,你就没有备用登录方式了。但是,请纠正我如果我错了,即使您使用用户名(而不是电子邮件),如果您忘记了密码,那么密码重置链接也将发送到您的(两年前的)电子邮件。您仍然无法登录。因此,据我所知,您的帖子所涉及的问题似乎适用于这两种情况,底线是:“如果您丢失了电子邮件或忘记了电子邮件,则可能无法登录站点,无论登录系统如何。” - MEM

    2

    专业版

    人们讨厌为注册网站而创建一个既适合其身份又尚未被占用的唯一名称。这就是为什么将用户ID作为电子邮件地址如此受欢迎的原因。

    例如:TStamper1930,谁真正想要记住我想要的名字结尾的1930呢?


    2
    缺点:如果黑客可以尝试批量注册随机电子邮件地址,那么他或她将能够根据哪些注册失败来确定哪些地址是有效的。这是一种可用于组合已知有效电子邮件地址列表的策略,在垃圾邮件黑市上非常抢手。

    虽然现在我想起来了,这是一个影响任何要求在注册过程中提供电子邮件地址的网站的问题,无论是否有单独的用户名。但这仍然是值得思考的问题。


    3
    应该建立一个网站来检测和列入黑名单此类恶意尝试。 - Cadoo
    1
    同一个人可以尝试向随机地址发送邮件(正如您所说,他们将生成这些地址),并查看哪些地址能够成功投递,哪些不能。这比尝试通过网站更容易。 - Fred Nurk
    1
    您的网站不应该让用户知道电子邮件是否已经注册。 - Tommy
    @Tommy 这是个好主意。如果有人试图使用已经被使用的电子邮件地址注册,网络服务可以简单地回复“谢谢。确认电子邮件已发送至...”。然后在确认电子邮件中,可以有这样的信息:“您已经在我们这里拥有一个帐户。如果您忘记了密码,...”——哦,我刚刚注意到这正是我正在使用的第三方身份验证库的工作方式 :-) - KajMagnus

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接