security - 要求唯一的电子邮件,同时不泄露现有用户的电子邮件

标签 security design-patterns

在标准的 Web 注册表单上,用户需要拥有该站点的唯一电子邮件。
如果该电子邮件已在使用中,则无法使用该电子邮件创建新用户 - 但这会打开利用它来找出哪些电子邮件是网站成员的机会(至少检查是否正在使用特定电子邮件)。
确保机器人不能批量查询是相当简单的——但有没有办法完全避免它?
我能想到的最好的办法是让用户创建过程失败并出现未知错误,并在后台向该地址发送电子邮件,解释密码重置程序。
我错过了更好的选择吗?
更新:
我想避免在 99.9% 的时间里让新用户退出注册过程,而此时电子邮件实际上是唯一的。因此,停止注册过程以等待用户单击电子邮件中的链接并不是一个完美的解决方案,尽管在某些用例中可能可行。

最佳答案

让注册继续正常进行,但在确认电子邮件中您应该说:

"You allready have an accout bla, click here to cancel this registration, or continue with new registration and delete your current account"

这样,垃圾邮件发送者永远不会知道更好,而且它非常用户友好。

关于security - 要求唯一的电子邮件,同时不泄露现有用户的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642301/

相关文章:

java - 通过模式访问非公开方法

algorithm - 处理大量的微依赖

PHP登录系统,如何保护它

c# - 当我们有不同的返回类型时实现策略模式

c# - 创建、批准、编辑、批准网站内容模式

php - `return $this;` 设计模式还是反模式?

php - 如何放宽 PHP 的 open_basedir 限制?

java - 保护网络 API 访问

java - jBCrypt 无法验证密码

security - Heroku 和 ip 掩码