需要唯一的电子邮件地址,同时保护用户的隐私?

时间:2009-06-28 18:46:20

标签: security

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

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

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

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

4 个答案:

答案 0 :(得分:22)

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

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

答案 1 :(得分:2)

我认为问题是如果有人忘记密码,你会要求他们输入他们的电子邮件地址,如果发现匹配,你会在那里发送密码?

为此,您可以让用户在注册其电子邮件地址时提出问题/答案质询。它对您的用户来说是一个更大的痛苦,但如果安全性是一个问题,那么他们可能会为此而努力。

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

要解决您的疑虑,您应该乐意接受所有注册并发送确认电子邮件,即使它们已经注册。这样,用户不知道他们是否刚刚第一次注册了电子邮件地址。

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

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

答案 2 :(得分:0)

是的,这可能会发生,除了限制检查/注册尝试次数之外,您无法真正做任何事情。这至少会妨碍竞争对手的自动检查。当然,如果某个人决定检查他的女朋友是否在那里注册,那么他将有这种可能性。

答案 3 :(得分:0)

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