我目前正在一个小型网站上工作,我的客户非常关注隐私问题。
我正在通过常见的电子邮件验证实施用户注册,即当用户想要注册时,他需要提供电子邮件地址,并且包含验证链接的电子邮件会发送到此地址。
在注册表格中,我正在进行通常的表单验证。如果用户名 - 可以自由选择 - 已经在使用中,则会显示一条消息,说明如此。我的第一个想法是对电子邮件地址做同样的事情,因为这个地址在整个系统中也应该是唯一的。
但在某些情况下,即使有人在网站上注册的信息也可能是私密的。但是现在,如果有人想知道是否有其他人注册,并且他是否知道其他人的电子邮件,他可以简单地尝试使用这个已知地址注册新用户,并且错误消息会告诉他这个人是已经注册。
我有一个想法如何解决这个问题(我会将其作为自我答案发布)但我想知道,如果1)此解决方案有任何其他缺陷,2)如果有其他可能的解决方案。
感谢。
答案 0 :(得分:3)
所以这就是我想到的解决方案。如果您发现任何问题,请发表评论:)
如果新用户使用现有的电子邮件地址,我只会显示“正常”成功消息,说明已将包含该链接的电子邮件发送到指定地址。
然后会向该地址发送一封电子邮件,说有人试图用这个地址注册一个新用户,该地址已被使用,并且只能使用一次(基本上,只会发送验证错误消息)到电子邮件地址而不是网络浏览器。)
答案 1 :(得分:3)
你有没有考虑选择不处理它?</ p>
有许多ID提供商;并且使用与Stack Exchange系列网站类似的方法可能更适合您的情况。
将ID管理功能降级到外部提供商非常简单,并且比自己处理密码,电子邮件,用户唯一性等更容易安全。
此外,大多数ID提供商都允许您访问注册用户的电子邮件地址,因此不太可能成为问题。