机器人技术在过去十年中不断发展。最初,机器人是一个脚本,通过访问网站来检索数据或执行操作。这些脚本不接受Cookie,也不解析JavaScript,因此很容易被检测到。
随着时间的推移,机器人变得越来越复杂,可以接受Cookie和解析JavaScript,但它们仍然很容易被检测到,因为它们使用的动态网站元素比人类用户少。
下一个演变是使用PhantomJS等无头浏览器——这些浏览器可以完整地处理网站内容。尽管这些浏览器比基本的机器人更复杂,但无头浏览器仍然无法执行真实用户可以执行的所有操作。
最先进的机器人类型基于Chrome浏览器,与真实用户几乎无法区分。这些机器人甚至模拟了人类活动,比如点击页面元素。
随着机器人的进化,缓解技术也在进化。目前有三种技术方法可以检测和减轻不良机器人:
•静态方法——静态分析工具可以识别与坏机器人相关的web请求和标头信息,被动地确定机器人的身份,并在必要时阻止它。
•基于挑战的方法——你可以让你的网站具备主动检查流量是来自人类用户还是机器人的能力。基于挑战的机器人检测器可以检查每个访问者使用Cookie、运行JavaScript和与验证码元素交互的能力。处理这些类型元素的能力降低是机器人流量的标志。
•行为方法——行为机器人缓解机制会查看每个访问者的行为特征,看看它是否是它声称的那样。行为机器人缓解为谷歌Chrome等用户代理建立了正常行为的基线,并查看当前用户是否偏离了该行为。它还可以将行为特征与之前已知的坏机器人特征进行比较。
通过结合这三种方法,你可以克服所有类型的规避机器人,并成功地将它们与人类交通分开。您可以独立使用这些方法,也可以依靠机器人缓解服务为您执行技术。
机器人缓解服务是使用上述方法识别机器人的自动化工具。这些服务可用于监控API流量,并检测是否是合法的机器流量或坏机器人“榨取”您的API。
高级机器人缓解服务对每个请求客户端或机器使用速率限制,而不是对整个IP进行速率限制,使其能够限制恶意机器人的爬行。一旦识别出机器人程序,这些服务就可以在网络上传播信息,以确保同一个机器人程序无法再次访问您的网站或API。