WEB应用防火墙 WAF-配置网站反爬虫防护规则防御爬虫攻击:JS脚本反爬虫检测机制
JS脚本反爬虫检测机制
JS脚本检测流程如图1所示,其中,①和②称为“js挑战”,③称为“js验证”。
开启JS脚本反爬虫后,当客户端发送请求时,WAF会返回一段JavaScript代码到客户端。
- 如果客户端是正常浏览器访问,就可以触发这段JavaScript代码再发送一次请求到WAF,即WAF完成js验证,并将该请求转发给源站。
- 如果客户端是爬虫访问,就无法触发这段JavaScript代码再发送一次请求到WAF,即WAF无法完成js验证。
- 如果客户端爬虫伪造了WAF的认证请求,发送到WAF时,WAF将拦截该请求,js验证失败。
通过统计“js挑战”和“js验证”,就可以汇总出JS脚本反爬虫防御的请求次数。例如,图2中JS脚本反爬虫共记录了18次事件,其中,“js挑战”(WAF返回JS代码)为16次,“js验证”(WAF完成JS验证)为2次,“其他”(即爬虫伪造WAF认证请求)为0次。
“js挑战”和“js验证”的防护动作为仅记录,WAF不支持配置“js挑战”和“js验证”的防护动作。