这在 Security.Stackexchange.com 网站上可能更好,但是......
根据OWASP Guide to Authentication,验证码实际上是一件坏事。它们不仅不起作用,还会引起额外的头痛,而且在某些情况下(根据 OWASP)它们是非法的。
验证码
CAPTCHA(完全自动化的图灵测试以区分人类和计算机)在任何禁止歧视残疾公民的司法管辖区都是非法的。这基本上就是整个世界。尽管 CAPTCHA 看起来很有用,但实际上使用以下任何一种方法都可以轻松破解:
• 光学字符识别。大多数常见的验证码都可以使用专业的验证码破解 OCR 软件来解决。
• 打破测试,免费访问 foo,> 其中 foo 是理想的资源
• 花钱请人解决验证码。
撰写本文时的当前费率为每 500 次测试 12 美元。因此,在您的软件中实施 CAPTCHA 很可能至少在一些国家是非法的,更糟糕的是 - 完全无效。
其他方法是常用的。
- 最常见的可能是电子邮件验证过程。您注册后,他们会向您发送一封电子邮件,并且只有当您确认该帐户已激活并可访问时。
- CAPTCHA还有几个有趣的替代方案,它们执行相同的功能,但以一种(可以说,在某些情况下)不那么困难的方式。
- 更困难的可能是跟踪来自单个 IP 地址的表单提交,并阻止明显的攻击。 但这可以被欺骗和绕过。
- 另一种使用 JavaScript 来计算用户在提交之前在网页上花费的时间的技术。大多数机器人几乎会立即提交内容(如果它们甚至运行 JavaScript),因此检查自页面呈现后是否经过一两秒可以检测机器人。但是机器人也可以用来愚弄这一点
- 蜜罐技术还可以帮助检测此类表单提交。这里有一个很好的实现示例。
- 此页面还讨论了表单令牌方法。在这种情况下,直到现在我才听说过表单令牌。它在概念上看起来类似于反 csrf 令牌。
总而言之,与任何与安全相关的事情一样,您最好的防御是一种分层方法,使用多个防御。这个想法是让它比平均水平更难,这样你的攻击者就会放弃广告尝试不同的网站。这不会阻止持续攻击者,但会减少偷渡式攻击。
要回答您最初的问题,这完全取决于网站开发人员采取了哪些预防措施来防止人们自动创建帐户。
任何有能力的开发人员都会在需求收集阶段解决这个问题,并为此制定计划。但是有很多网站是由不称职的开发人员/团队编写的,即使在应该更了解的大牌公司中也是如此。