【问题标题】:Requiring unique email addresses while protecting the privacy of your users?在保护用户隐私的同时需要唯一的电子邮件地址?
【发布时间】:2009-10-28 22:52:04
【问题描述】:

我将我的网站设置为需要唯一的电子邮件地址(两个用户不能拥有相同的电子邮件地址),但我意识到这可能允许某人通过尝试使用该电子邮件注册来检查某人是否在我的网站上注册。当然,这个人必须知道他们想尝试的电子邮件地址,但这对某些人来说可能是有用的信息(例如,想查看他们的用户是否在我的网站上注册的竞争对手)。

是否有任何真正的方法可以阻止这种情况,或者是否必须接受这种可能性?

编辑:为了清楚起见,这是关于创建一个帐户。即使您为错误登录提供了一个通用的“无效登录”,您如何在不披露哪些用户名或电子邮件地址有效的情况下要求唯一的电子邮件地址或用户名?

附加的,很久以后的编辑:这里没有考虑的一件事是当您让用户在创建帐户后更改他们的电子邮件地址时,保持对唯一电子邮件地址的要求。在这里,我接受的发送“忘记密码”电子邮件的解决方案几乎不起作用。相反,似乎唯一的选择是使用验证码或限制电子邮件地址在特定时间段内可以更改的次数,以限制自动尝试。

【问题讨论】:

  • 好问题。我从来没有想过这个!

标签: security


【解决方案1】:

如果有人尝试使用现有帐户注册,请发送“更改密码”电子邮件而不是“新帐户”电子邮件(并说明原因)。

将 HTTP 响应保留为简单的“确认电子邮件已发送到您指定的地址。按照其中的说明继续”。

【讨论】:

  • 你的意思是,无论如何给人们发一封电子邮件,只要根据电子邮件地址是否被使用来确定发送哪个电子邮件正文?
  • 如果您想避免泄露这些私人信息,您真正可以做的就是这些。
  • 这是有道理的,因为无论它是否是真实的电子邮件地址,它的响应都是一样的..
【解决方案2】:

我想问题是如果有人忘记了他们的密码,您会要求他们输入他们的电子邮件地址,如果找到匹配项,您会发送密码吗?

为此,您可以让用户在注册其电子邮件地址时提供问题/答案挑战。这对您的用户来说是一个更大的痛苦,但如果安全是一个问题,那么他们可能会选择它。

另一种可能是您的注册表单。在这种情况下,用户可以输入电子邮件地址以查看其是否已“被占用”。

为了解决您的问题,您应该欣然接受所有注册并发送确认电子邮件,即使他们已经注册。这样用户就不知道他们是不是第一次注册了这个邮箱。

最后,如果给出的用户名/密码不正确,请不要告诉用户哪个是错误的。

我不认为这是一个可怕的安全风险,除非网站的成员资格是敏感的,在这种情况下,您可以使用所描述的一些模式。

【讨论】:

    【解决方案3】:

    是的,这可能会发生,除了及时限制检查/注册尝试的次数之外,您实际上无能为力。这至少会阻止竞争对手的自动检查。当然,如果有人决定检查他的女朋友是否在那里注册,那么他就有这种可能性。

    【讨论】:

      【解决方案4】:

      只是一个想法,不确定它是否会起作用,但为什么不做一些类似登录页面的事情,而不是说“你的密码错误”它说“你的用户名或密码错误”。也许只是声明“您的电子邮件地址无效”。这可能是一个可用性错误,但如果你担心人们会按照你说的去做,那么你可能不得不忍受它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-13
        • 2018-07-08
        • 1970-01-01
        • 1970-01-01
        • 2014-03-26
        • 2014-02-20
        相关资源
        最近更新 更多