我需要编写一些代码来分析我们网站上的给定用户是否是机器人.如果它是机器人,我们将采取一些具体行动.除了友好的机器人之外,查看用户代理并不是什么成功,因为您可以在机器人中指定您想要的任何用户代理.我是在不友好机器人的行为之后.我到目前为止的各种想法是:
如果您没有浏览器ID
如果您没有会话ID
无法写一个cookie
显然,在某些情况下,合法用户看起来像机器人,但没关系.是否有其他编程方法来检测机器人,或者检测看起来像机器人的东西?
澄清为什么要排除机器人,以及你对错误分类的容忍度.
也就是说,你是否必须以牺牲机器人这样的真实用户为代价来排除每一个机器人?或者,如果机器人抓取您的网站,只要它们没有性能影响,它是否可以?
排除所有机器人的唯一方法是关闭您的网站.恶意用户可以将他们的僵尸程序分发到足以让您无法将其流量与真实用户区分开的机器上.像JavaScript和CSS这样的技巧不会阻止坚定的攻击者.
如果"愉快的媒介"令人满意,可能有用的一个技巧是隐藏CSS链接,以便浏览器中的用户看不到它们,但仍然在HTML中.跟随其中一个"毒药"链接的任何代理都是机器人.
用户代理可以伪造.Captchas已被破解.可以通过页面请求将有效的cookie发送回您的服务器.合法程序(如Adobe Acrobat Pro)可以在一个会话中进入并下载您的网站.用户可以禁用JavaScript.由于没有"正常"用户行为的标准度量,因此无法与机器人区分.
换句话说:不能将用户拉入某种形式的互动聊天,并希望他们通过图灵测试,然后再次,他们也可能是一个非常好的机器人.