2

这是我第一次构建一个具有复杂登录\注册对话框的网站,该对话框具有后端安全功能,例如使用激活码进行电子邮件验证和禁止注册太多错误的登录尝试。

我以为我已经完成了安全架构的构建,但后来出现了:如何阻止恶意用户滥用我的新用户对话框。

我能想出的唯一解决方案是在成功注册时使用上次用于注册的电子邮件地址提交一个 cookie,后端在新的注册尝试时识别此 cookie 并提示用户新的发现。甚至可能在响应之前需要超时。

但这只会让 12 岁的孩子无法忍受,这可能不会发生,但即使有基本技能和足够好的理由的人也可以用一个简单的脚本暴力注册数千封电子邮件,我不能阻止用户拥有尽可能多的帐户我的网站,因为他确实有电子邮件帐户(amirite?)

有什么建议么?

4

3 回答 3

1

尝试集成验证码或用户必须做的事情,例如小数学。随机生成用户必须做的事情才能注册。通常这会惹恼大多数孩子,因为他们必须更改脚本。

验证码通常在公共网站注册页面上很常见......

也可以尝试将电子邮件与 IP 一起注册并记录在该帐户上登录的 IP 地址,并阻止该 IP 的新帐户。

于 2013-09-22T10:55:01.397 回答
1

您可以在注册时记录 IP 地址,如果您从同一个 IP 地址获得大量用户,您可以阻止它.. 说垃圾邮件发送者可以欺骗他们的 IP。

我会推荐:

  • CSRF
  • 验证电子邮件地址。
  • 记录所有 IP 并在必要时阻止任何 IP。
  • 如果验证码都失败,它不会清除所有内容,但根据我的经验,它会杀死很多人。
于 2013-09-22T10:55:10.307 回答
0

一种可能性是生成一个随机数服务器端并将其存储在一个会话变量中,该变量必须与数据一起返回,或者更好的是随机数的一些散列版本,例如。MD5。这可以由服务器验证。

这意味着您每次请求只能尝试一次,孩子们必须调整脚本以适合您的站点。您甚至可以限制每个会话生成数字的频率。

于 2013-09-22T11:12:12.137 回答