开启网站反爬虫后,为什么有些请求被WAF拦截但查不到拦截记录?
当您开启网站反爬虫后,WAF将对该域名的第一个访问请求返回一个JavaScript代码,然后根据浏览器解析执行结果返回的数据来判断是否为合法的浏览器或爬虫工具。
网站反爬虫正常的检测流程如下:
- 客户端访问网站,实际请求首先发送到WAF上。
- WAF返回JavaScript代码到客户端。
- 客户端解析JavaScript代码,并将执行结果返回给WAF。步骤3 WAF根据客户端返回的结果判断客户端是否为合法的浏览器。
- 如果合法,则WAF将请求发送给源站服务器。
- 如果非法,则WAF产生告警日志。
注意
开启网站反爬虫,要求客户端浏览器具有JavaScript的解析能力,并开启了Cookie。
如果客户端不满足以上要求,则只能完成步骤1和步骤2,此时:
对于客户端,请求没有成功获取到页面。
对于WAF,客户端并没有发送解析JavaScript代码的执行结果,因此没有拦截日志记录。
请您排查业务侧是否存在这种场景。如果您的网站有非浏览器访问的场景,建议您关闭网站反爬虫功能。