- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想保留那些窃取内容并消耗我网站带宽的不良抓取工具(也就是根据定义忽略 robots.txt
的坏机器人)。同时,我不想干扰合法人类用户的用户体验,也不想阻止行为良好的机器人(例如 Googlebot)将站点编入索引。
这里已经描述了处理这个的标准方法:Tactics for dealing with misbehaving robots .但是,该线程中提出和赞成的解决方案并不是我想要的。
一些坏的机器人通过 Tor 或僵尸网络连接,这意味着它们的 IP 地址是短暂的,很可能属于使用受感染计算机的人。
因此,我一直在思考如何通过让 IP 被列入黑名单的“误报”(即人类)再次访问我的网站来改进行业标准方法。一种想法是完全停止阻止这些 IP,而是要求他们在被允许访问之前通过验证码。虽然我认为 CAPTCHA 是合法用户的 PITA,但与完全阻止对这些 IP 的访问相比,使用 CAPTCHA 审查可疑的恶意机器人似乎是更好的解决方案。通过跟踪完成 CAPTCHA 的用户 session ,我应该能够确定他们是人类(并且应该将他们的 IP 从黑名单中删除),还是足够聪明的机器人来解决 CAPTCHA,将他们放在更黑的名单上。
然而,在我继续实现这个想法之前,我想问问这里的好人他们是否预见到任何问题或弱点(我已经知道一些 CAPTCHA 已被破坏 - 但我认为我能够处理) .
最佳答案
我认为的问题是验证码是否存在可预见的问题。在深入探讨之前,我还想说明一下您计划如何捕捉机器人以使用验证码挑战它们的问题。 TOR 和代理节点会定期更改,因此 IP 列表需要不断更新。您可以使用 Maxmind获取一个不错的代理地址列表作为您的基线。您还可以找到更新所有 TOR 节点地址的服务。但并非所有坏机器人都来自这两个向量,因此您需要找到其他捕获机器人的方法。如果您添加速率限制和垃圾邮件列表,那么您应该可以找到超过 50% 的坏机器人。其他策略确实必须围绕您的站点自定义构建。
现在来谈谈验证码的问题。首先,有像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 解决方案。我经常将我们的软件宣传为一个更复杂的系统,而不是简单地使用验证码并自己构建它,因此我对您的解决方案有效性的看法是有偏见的。
关于performance - 如何在不干扰真实用户的情况下从我的网站阻止恶意机器人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247067/
我是一名优秀的程序员,十分优秀!