配置网站反爬虫防护规则防御爬虫攻击
您可以通过配置网站反爬虫防护规则,防护搜索引擎、扫描器、脚本工具、其它爬虫等爬虫,以及自定义JS脚本反爬虫防护规则。
前提条件
已添加防护网站。
约束条件
JS脚本反爬虫检测机制
JS脚本检测流程如图1所示,其中,①和②称为“JS挑战”,③称为“JS验证”。
- 如果客户端是正常浏览器访问,就可以触发这段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验证”的防护动作。
配置网站反爬虫防护规则
- 登录管理控制台。
- 在管理控制台左上角,单击
,选择区域或项目。
- 在页面左上方,单击
,选择 。
- 在左侧导航栏,单击“防护策略”。
- 单击目标策略名称,进入目标策略的防护配置页面。
- 在“网站反爬虫”配置框中,用户可根据自己的需要更改网站反爬虫的“状态”,单击“BOT设置”,进入网站反爬虫规则配置页面。
图3 网站反爬虫配置框
- 选择“特征反爬虫”页签,根据您的业务场景,开启合适的防护功能,如图4所示,检测项说明如表1所示。
特征反爬虫规则提供了两种防护动作:
表1 特征反爬虫检测项说明 检测项
说明
功能说明
搜索引擎
搜索引擎执行页面内容爬取任务,如Googlebot、Baiduspider。
开启后,WAF将检测并阻断搜索引擎爬虫。
说明:如果不开启“搜索引擎”,WAF针对谷歌和百度爬虫不会拦截,如果您希望拦截百度爬虫的POST请求,可参照配置示例-搜索引擎进行配置。
扫描器
执行漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap。
开启后,WAF将检测并阻断扫描器爬虫。
脚本工具
用于执行自动化任务、程序脚本等,如httpclient、okhttp、python程序等。
开启后,WAF将检测并阻断执行自动化任务、程序脚本等。
说明:如果您的应用程序中使用了httpclient、okhttp、python程序等脚本工具,建议您关闭“脚本工具”,否则,WAF会将使用了httpclient、okhttp、python程序等脚本工具当成恶意爬虫,拦截该应用程序。
其他爬虫
各类用途的爬虫程序,如站点监控、访问代理、网页分析等。
说明:“访问代理”是指当网站接入WAF后,为避免爬虫被WAF拦截,爬虫者使用大量IP代理实现爬虫的一种技术手段。
开启后,WAF将检测并阻断各类用途的爬虫程序。
- 选择“JS脚本反爬虫”页签,用户可根据业务需求更改JS脚本反爬虫的“状态”。
默认关闭JS脚本反爬虫,单击
,在弹出的“警告”提示框中,单击“确定”,开启JS脚本反爬虫
。
- 根据业务配置JS脚本反爬虫规则,相关参数说明如表2所示。
JS脚本反爬虫规则提供了“防护所有请求”和“防护指定请求”两种防护动作。
表2 JS脚本反爬虫参数说明 参数
参数说明
示例
规则名称
自定义规则名称。
waf
规则描述
可选参数,设置该规则的备注信息。
-
生效时间
立即生效。
立即生效
条件列表
条件设置参数说明如下:
- 字段:在下拉列表中选择需要防护的字段,当前仅支持“路径”、“User Agent”。
- 子字段
- 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
说明:
当“逻辑”关系选择“包含任意一个”、“不包含所有”、“等于任意一个”、“不等于所有”、“前缀为任意一个”、“前缀不为所有”、“后缀为任意一个”或者“后缀不为所有”时,需要选择引用表。
- 内容:输入或者选择条件匹配的内容。
“路径”包含“/admin/”
优先级
设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的优先级依次进行匹配,优先级较小的规则优先匹配。
5
- 完成以上配置后,您可以在防护规则列表查看已添加的规则。此时,“规则状态”默认为“已开启”。
- 如果您暂时不想使该规则生效,可在目标规则“操作”列,单击“关闭”。
- 您也可以在目标规则“操作”列,单击“删除”或“修改”,删除或修改已添加的防护规则。