如何处理对注册表的攻击?

Joh*_*ohn 4 security email registration

注册流程问题

我正在考虑电子邮件验证,并且正在玩一些应用程序。如果

-) 攻击者编写一个脚本,用不同的随机电子邮件地址注册数百万个帐户(所有现有的,人们的电子邮件)然后当人们注册时,它会提示电子邮件已存在于数据库中?

-) 或者更简单,如果用户使用其他人的电子邮件地址注册怎么办?注册 Ajax 会触发创建 userid 和 info 到数据库中的用户表中,但未完成验证。

但是,当具有电子邮件的“真实”用户注册时,电子邮件已经被占用......?因为数据库中不能同时存在2个电子邮件地址(因为脚本将无法区分用户之间......

alf*_*sin 8

首先,您应该尝试检测同一IP是否在短时间内向您发送了多个注册请求并将其列入黑名单(至少一段时间)。

其次,即使发送了验证电子邮件 - 您可以做很多事情来避免“重复注册”问题,以下是一些示例:

  1. 每天运行一次清理作业 - 删除超过 24 小时未验证其帐户(通过电子邮件)的用户的所有条目
  2. 在用户验证他/她的注册之前不要创建用户帐户(您可以在另一个表中创建一个条目:例如 UNVERIFIED_USERS)。通过这样做 - 您可以确保在发生此类攻击时减少现有用户的延迟 - 因为不会修改 USERS 表。
  3. 如果用户尝试注册并且他/她已经“有一个帐户”,您应该允许用户通过发送另一封带有链接的验证电子邮件来重置密码。
  4. 您可以在注册表中使用验证之类的解决方案- 以防止此类攻击。今天有可以绕过验证码的智能机器人,所以你也可以寻找验证码的替代品