如何处理注册表单上的攻击?

时间:2015-05-14 06:08:58

标签: security email registration

注册过程的问题

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

怎么办?

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

- )或者甚至更简单,如果用户注册其他人的电子邮件地址怎么办?注册Ajax触发在数据库中的用户表中创建用户标识和信息,但验证未完成。

然而,当"真实"用户使用电子邮件注册,电子邮件已经被采取...?由于数据库中不能同时存在2个电子邮件地址(因为脚本无法区分用户...

1 个答案:

答案 0 :(得分:4)

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

其次,即使发送验证邮件 - 您可以做很多事情以避免“重复注册”问题,这里有几个例子:

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