2

是否可以创建一个在服务器外部执行的脚本,或者使用浏览器插件,例如它自动填写表单值,然后提交所有准备好由服务器解析的表单?通过这种方式,十亿个假帐户可以在三分钟内轻松注册,想象一下不使用任何人类验证码可见的 facebook,这是一个执行表单提交并将从本地数据库检索到的 vals 插入新电子邮件的浏览器插件关联起来,因为那是一张支票——没有重复的电子邮件,是否可以每天在全球范围内创建成千上万个假账户?

防止虚假帐户的最佳方法是什么?甚至想象一个旋转的 ips 中心的场景,人类注册只是为了阻塞数据库,在一年内实现 30-5000 万个帐户。谢谢

4

3 回答 3

3

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

根据OWASP Guide to Authentication,验证码实际上是一件坏事。它们不仅不起作用,还会引起额外的头痛,而且在某些情况下(根据 OWASP)它们是非法的。

验证码

CAPTCHA(完全自动化的图灵测试以区分人类和计算机)在任何禁止歧视残疾公民的司法管辖区都是非法的。这基本上就是整个世界。尽管 CAPTCHA 看起来很有用,但实际上使用以下任何一种方法都可以轻松破解:

• 光学字符识别。大多数常见的验证码都可以使用专业的验证码破解 OCR 软件来解决。

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

• 花钱请人解决验证码。

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

其他方法是常用的。

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

总而言之,与任何与安全相关的事情一样,您最好的防御是一种分层方法,使用多个防御。这个想法是让它比平均水平更难,这样你的攻击者就会放弃广告尝试不同的网站。这不会阻止持续攻击者,但会减少偷渡式攻击。

要回答您最初的问题,这完全取决于网站开发人员采取了哪些预防措施来防止人们自动创建帐户。

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

于 2012-08-23T15:40:42.317 回答
0

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

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

于 2012-08-23T15:38:31.147 回答
0

这可以使用简单的脚本来实现,这些脚本可能使用也可能不使用浏览器扩展(例如用 Perl 编写的脚本或使用 wget/curl 的 shell 脚本)。

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

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

于 2012-08-23T15:46:35.630 回答