4

我想保留robots.txt那些窃取内容并消耗我网站带宽的不好的爬虫(又名。坏机器人,被定义忽略)。同时,我不想干扰合法人类用户的用户体验,或阻止行为良好的机器人(例如 Googlebot)对网站进行索引。

处理此问题的标准方法已在此处描述:处理行为不端的机器人的策略。但是,该线程中提出和赞成的解决方案并不是我想要的。

一些不良机器人通过 Tor 或僵尸网络连接,这意味着它们的 IP 地址是短暂的,很可能属于使用受感染计算机的人。

因此,我一直在考虑如何通过让 IP 被列入黑名单的“误报”(即人类)再次访问我的网站来改进行业标准方法。一个想法是完全停止阻止这些 IP,而是要求他们在被允许访问之前通过验证码。虽然我认为 CAPTCHA 是合法用户的 PITA,但使用 CAPTCHA 审查可疑的恶意机器人似乎是比完全阻止这些 IP 访问更好的解决方案。通过跟踪完成 CAPTCHA 的用户会话,我应该能够确定他们是人类(并且应该将他们的 IP 从黑名单中删除),还是智能到足以解决 CAPTCHA 的机器人,将他们置于更黑名单上。

但是,在我继续实施这个想法之前,我想问问这里的好人是否预见到任何问题或弱点(我已经知道一些 CAPTCHA 已被破坏 - 但我认为我应该能够处理) .

4

1 回答 1

1

我认为的问题是验证码是否存在可预见的问题。在深入探讨之前,我还想说明一下您计划如何捕捉机器人以使用验证码挑战它们。TOR 和代理节点会定期更改,因此 IP 列表需要不断更新。您可以使用Maxmind作为基准的代理地址列表。您还可以找到更新所有 TOR 节点地址的服务。但并非所有坏机器人都来自这两个向量,因此您需要找到其他捕获机器人的方法。如果您添加速率限制和垃圾邮件列表,那么您应该会遇到超过 50% 的不良机器人。其他策略确实必须围绕您的网站定制。

现在谈谈验证码的问题。首先,有像http://deathbycaptcha.com/这样的服务。我不知道我是否需要详细说明这一点,但这会使您的方法变得毫无用处。人们绕过验证码的许多其他方式都在使用 OCR 软件。Captcha 在击败 OCR 方面做得越好,对您的用户来说就越难。此外,许多 Captcha 系统使用客户端 cookie,有人可以解决一次,然后上传到他们所有的机器人。我认为最著名的是 Karl Groves 列出的 28 种击败 Captcha 的方法。http://www.karlgroves.com/2013/02/09/list-of-resources-break-captcha/

为了充分披露,我是Distil Networks的联合创始人,这是一个阻止机器人的 SaaS 解决方案。我经常将我们的软件作为一个更复杂的系统来宣传,而不是简单地使用验证码并自己构建它,所以我对你的解决方案的有效性的看法是有偏见的。

于 2013-11-09T20:42:41.883 回答