我使用我认为是识别不尊重我的坏机器人的标准方法robots.txt(即不允许爬取bad-bots子目录,然后记录那些仍然去那里的人)。
到目前为止,我只是在识别出恶意机器人后根据它们的 IP 地址阻止了它们。但是,我正在考虑为至少一些(例如可能是误报的虚假罪犯)引入一种更微妙的方法。这个想法是请求将被提供,但在延迟之后(例如使用 PHP 实现sleep())。这样,一个(患者)人恰好被分配了一个以前被恶意机器人使用的 IP 地址,将会看到该页面,而恶意机器人可能会放弃请求并转移到下一个受害者。
问题是:在这种类型的方案中我应该使用多少秒?理想情况下,它应该足够短,以免对人类太烦人,同时又足够长以阻止坏机器人爬取我的网站。
或者:是否有某种方法可以用来衡量机器人试图访问我的网站在“放弃”并继续前进之前等待响应的时间?
编辑:Dinu Smădu 和 Rory Alsop 的评论让我相信引入延迟不是一个好主意。Polynominal 建议 Security.SE 可能不是最合适的场所。所以我把我在这里学到的东西(再次感谢,伙计们!)并在Webmasters.SE上发布了一个修改后的问题。