网络爬虫已经两次购买我们的网站。它忽略了我们的 robots.txt,并且我们没有使用电子邮件和推特从他们的客户服务或支持部门获得回复。
我不得不根据他们的用户代理字符串创建 url 重定向,我已经将他们的所有请求重定向回他们自己的公共网站。这是正确的做法吗?
编辑 如何返回 40?基于使用 tomcat/tuckey 的用户代理字符串的错误代码?(如果重要的话,我们的网站托管在 Windows 服务器上。)我不能使用 IP 地址,因为机器人使用很多 IP 地址(它显然是基于网格的)。
这部分是由于我们的网站是一个老旧的旧系统,但谷歌的爬虫和 Bing 的爬虫没有把我们打倒,我们的正常业务流量也很好。处理一个机器人的重大投资/开发是不明智的。
如果网络爬虫可以使您的网站瘫痪,那么他们就证明您的网站非常容易受到 DOS 攻击。虽然是的,一个快速的解决方法是阻止该网络爬虫的访问,但它并不能真正为您提供太多保护来抵御其他网络爬虫/DOS/大量合法流量。
我同意 Bobby 的观点——你知道请求来自行为不端的客户端,那么正确的响应是 4xx 错误代码——但你可以在响应中放置任何状态消息——并且应该在正文中重复它。我认为它不需要新的状态代码 - 409 似乎可以解决这种情况。
实际上,您应该考虑如何更优雅地处理此类流量——最小带宽保证比带宽上限更有效,但比后者更罕见。限制每个 IP 地址的连接数和连接速率也是一个好方法(但如果您使用的是 IPv4,请注意 IPv6 PoP 问题)。
如果你想要一个在用户空间中运行的自适应解决方案,(假设这是在 Linux / BSD 上)看看 fail2ban。
限制带宽/连接仍然是补救措施 - 更好的解决方案是提高系统的性能/容量。