我需要编写一些代码来分析我们网站上的给定用户是否是机器人。如果是机器人,我们将采取一些具体措施。除了友好的机器人以外,查看用户代理并不能成功,因为您可以在机器人中指定所需的任何用户代理。我关注不友好的机器人的行为。到目前为止,我有以下各种想法:


如果您没有浏览器ID
如果没有会话ID
无法写一个cookie


显然,在某些情况下,合法用户看起来像个机器人,但这没关系。还有其他检测机器人的编程方式,还是检测看起来像机器人的东西?

最佳答案

弄清为什么要排除机器人,以及如何容忍错误分类。

也就是说,您是否必须以牺牲像bot这样的真实用户的身份来排除每个bot?还是只要漫游器对您的网站没有性能影响就可以爬网吗?

排除所有漫游器的唯一方法是关闭您的网站。恶意用户可以将其漫游器分发到足够多的计算机上,以致您无法区分其流量与真实用户。像JavaScript和CSS这样的技巧不会阻止坚定的攻击者。

如果“满意的媒介”令人满意,那么可能有用的一个技巧是隐藏带有CSS的链接,以使它们在浏览器中对用户不可见,但仍在HTML中。遵循这些“毒药”链接之一的任何代理都是机器人。

关于bots - 程序化机器人检测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/341695/

10-17 01:17