如何在不干扰真实用户的情况下阻止来自我网站的坏机器人?

时间:2013-01-09 21:45:00

标签: performance apache captcha bots robots.txt

我想保留那些窃取内容并消耗我网站带宽的不好的刮刀(也就是通过defintition忽略的坏机器人robots.txt)。同时,我不想干涉合法用户的用户体验,也不想阻止表现良好的僵尸程序(如Googlebot)索引网站。

此处已经描述了处理此问题的标准方法:Tactics for dealing with misbehaving robots。但是,在该主题中提出和提出的解决方案 not 我正在寻找的内容。

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

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

然而,在我继续实施这个想法之前,我想问一下这里的好人,如果他们预见到任何问题或弱点(我已经知道有些CAPTCHA已被打破 - 但我认为我将能够处理那个)。

1 个答案:

答案 0 :(得分:1)

我相信的问题是验证码是否存在可预见的问题。在我深入研究之前,我还想谈谈你如何计划抓住机器人用验证码挑战它们。 TOR和代理节点定期更改,因此需要不断更新IP列表。您可以使用Maxmind作为基准的代理地址列表。您还可以找到更新所有TOR节点地址的服务。但并非所有坏机器人都来自这两个载体,因此您需要找到其他方法来捕捉机器人。如果你添加速率限制和垃圾邮件列表,那么你应该得到超过50%的坏机器人。其他策略实际上必须围绕您的网站进行定制。

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

为了完全披露,我是Distil Networks的联合创始人,这是一个阻止僵尸程序的SaaS解决方案。我经常将我们的软件推广为一个更复杂的系统,而不仅仅是使用验证码并自己构建它,因此我对您的解决方案的有效性的看法是有偏见的。