有人可以发一个帖子到register.php并注册10亿个账号吗?

时间:2012-08-23 15:35:38

标签: ajax security post

是否可以创建在服务器外部执行的脚本, 或者使用浏览器插件,例如它会自动填写表单值,然后提交表单以供服务器解析吗?通过这种方式,三分钟内十亿个虚假账户可以很容易地注册,想象一下facebook不会使用任何人类验证码,浏览器添加执行表单提交并插入从本地数据库检索到的val以获取新电子邮件到关联,因为这是一个检查 - 没有重复的电子邮件,每天可以创建成千上万的假账户?

防止虚假帐户的最佳方法是什么?甚至想象一个旋转的ips中心的场景,人类注册只是为了扼杀数据库,在一年内实现了3千万到5千万个账户。感谢

3 个答案:

答案 0 :(得分:3)

这在Security.Stackexchange.com网站上可能更好,但是......

根据OWASP Guide to Authentication,CAPTCHAs实际上是一件坏事。它们不仅不起作用,还会产生额外的麻烦,但在未来的情况下(根据OWASP)它们是非法的。

  

CAPTCHA

     

CAPTCHA(完全自动化图灵测试以告诉人类和计算机除外)在任何禁止的司法管辖区内都是非法的   歧视残疾公民。这基本上是   全世界。虽然CAPTCHAs似乎很有用,但实际上它们是微不足道的   使用以下任何一种方法打破:

     

•光学字符识别。最常见的CAPTCHA可以使用专家解决   CAPTCHA打破OCR软件。

     

•打破测试,免费访问foo,>其中foo是理想的资源

     

•支付某人解决CAPTCHA。

     

撰写本文时的当前费率为每500次测试12美元。   因此,最有可能在您的软件中实施CAPTCHA   在至少几个国家是非法的,更糟糕​​的是 - 完全   无效的。

通常使用其他方法。

  • 最常见的可能是电子邮件验证过程。您注册,他们会向您发送电子邮件,并且只有在您确认帐户已激活且可访问时才会向您发送。
  • CAPTCHA还有几个interesting alternatives执行相同的功能,但其方式(可能在某些情况下)难度较小。
  • 更难以跟踪来自单个IP地址的表单提交,并阻止明显的攻击。 但这可能会被欺骗和绕过
  • 使用JavaScript计算用户在提交之前在网页上花费的时间的另一种技术。大多数机器人几乎会立即提交内容(如果他们甚至根本运行JavaScript),那么检查自页面呈现以来已经过了一秒或2秒就可以检测到机器人。 但是机器人可以被制作成欺骗这个
  • 蜜罐技术还可以帮助检测此类表单提交。有一个很好的实现示例here
    • 此页面还讨论了表单令牌方法。表单令牌是我直到现在才知道的形式令牌。它看起来类似于概念中的反csrf令牌。

总而言之,你所做的最好的防守,就像任何与安全相关的东西一样,是一种分层的方法,使用不止一种防守。这个想法是让它比平均更难,以便攻击者放弃广告尝试不同的网站。这不会阻止持久性攻击者,但它会减少驱逐攻击。

要回答您的原始问题,这一切都取决于网站开发人员采取了哪些预防措施来阻止人们自动创建帐户。

任何有能力的开发人员都会在需求收集阶段解决这个问题,并为此做好计划。但是有很多网站由不称职的开发者/团队编写,即使是那些应该更了解的大牌公司。

答案 1 :(得分:0)

是。自动化表单提交非常容易,例如使用wgetcurl。这正是CAPTCHA存在的原因,使表单提交自动化变得困难。

验证电子邮件也很有用,尽管自动打开它们并单击验证链接非常简单。如果您对阻止垃圾电子邮件域(例如hotmail.com)保持警惕,它们确实提供了保护。

答案 2 :(得分:0)

这可以使用简单的脚本,可以使用或不使用浏览器扩展(例如使用perl编写的脚本或使用wget / curl的shell脚本)。

大多数网站依赖于在启用CAPTCHA之前跟踪从特定浏览器/ IP收到的请求数量。

可以在服务器端使用有限的到期时间跟踪此信息,或者如果客户端使用多个IP(例如DHCP连接上的用户),则可以使用cookie跟踪此信息。