2009-06-28 84 views
13

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

有没有什么真正的方法可以制止这种情况呢?还是仅仅为了接受这种可能性?

编辑:只需要清楚,这是关于创建一个帐户。即使您提供了一个通用的“无效登录名”,导致登录名不正确,您将如何要求唯一的电子邮件地址或用户名,而无需披露哪些用户名或电子邮件地址有效?

另外,稍后编辑:有一件事在这里没有考虑到的是,当您在帐户创建后让用户更改他们的电子邮件地址时,需要维护唯一的电子邮件地址。在这里,我接受发送“忘记密码”电子邮件的解决方案几乎没有效果。相反,似乎唯一的选择是使用验证码或限制电子邮件地址在某段时间内可以更改的次数,以限制自动尝试。

+0

好问题。我从来没有想过这个! – 2009-06-28 18:54:47

回答

22

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

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

+1

你是说,不管发生什么事情给人们发电子邮件,只要根据电子邮件地址是否被使用确定发送给他们的电子邮件正文? – 2009-06-28 18:59:47

0

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

2

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

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

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

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

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

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

0

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

相关问题