您可以通过配置网站反爬虫防护规则,防护搜索引擎、扫描器、脚本工具、其它爬虫 等爬虫,以及自定义JS脚本反爬虫防护规则。
说明
如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通 操作权限,才能为该企业项目下域名配置防护策略。
前提条件
已添加防护网站。
约束条件
● JS脚本反爬虫依赖浏览器的Cookie机制、JavaScript解析能力,如果客户端浏览器 不支持Cookie,此功能无法使用。
● 如果您的业务接入了CDN服务,请谨慎使用JS脚本反爬虫。
由于CDN缓存机制的影响,JS脚本反爬虫特性将无法达到预期效果,并且有可能 造成页面访问异常。
● 检测版和标准版(原专业版)不支持该功能。
● 防护网站部署模式为“ELB模式”时,不支持JS脚本反爬虫功能。
● 目前华北-北京一、华北-北京四、华东-上海一、华东-上海二、华南-广州、华南-深圳、西南-贵阳一、中国-香港、亚太-曼谷和俄罗斯-莫斯科二区域支持JS脚本反 爬虫功能。
● 开启JS脚本反爬虫后,如果不能查看拦截记录,请参见开启JS脚本反爬虫后,为 什么有些请求被WAF拦截但查不到拦截记录?。
● 网站反爬虫“js挑战”和“js验证”的防护动作为仅记录,WAF不支持配置“js挑 战”和“js验证”的防护动作。
JS 脚本反爬虫检测机制
JS脚本检测流程如图10-78所示,其中,①和②称为“js挑战”,③称为“js验证”。
用户指南 10 配置防护规则
图10-78 JS 脚本检测流程说明
开启JS脚本反爬虫后,当客户端发送请求时,WAF会返回一段JavaScript代码到客户 端。
● 如果客户端是正常浏览器访问,就可以触发这段JavaScript代码再发送一次请求到 WAF,即WAF完成js验证,并将该请求转发给源站。
● 如果客户端是爬虫访问,就无法触发这段JavaScript代码再发送一次请求到WAF,
即WAF无法完成js验证。
● 如果客户端爬虫伪造了WAF的认证请求,发送到WAF时,WAF将拦截该请求,js 验证失败。
通过统计“js挑战”和“js验证”,就可以汇总出JS脚本反爬虫防御的请求次数。例 如,图10-79中JS脚本反爬虫共记录了18次事件,其中,“js挑战”(WAF返回JS代 码)为16次,“js验证”(WAF完成JS验证)为2次,“其他”(即爬虫伪造WAF认证 请求)为0次。
图10-79 JS 脚本反爬虫防护数据
须知
“js挑战”和“js验证”的防护动作为仅记录,WAF不支持配置“js挑战”和“js验 证”的防护动作。
操作步骤
步骤1 登录管理控制台。
步骤2 进入防护策略配置入口,如图10-80所示。
图10-80 防护策略配置入口
步骤3 在“网站反爬虫”配置框中,用户可根据自己的需要参照图10-81更改网站反爬虫的
“状态”,单击“BOT设置”,进入网站反爬虫规则配置页面。
图10-81 网站反爬虫配置框
步骤4 选择“特征反爬虫”页签,根据您的业务场景,开启合适的防护功能,如图10-82所 示,检测项说明如表10-15所示。
用户指南 10 配置防护规则
● 拦截 任务,如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脚本反爬虫依赖浏览器的Cookie机制、JavaScript解析能力,如果客户端浏览器不 支持Cookie,此功能无法使用。
● 如果您的业务接入了CDN服务,请谨慎使用JS脚本反爬虫。
由于CDN缓存机制的影响,JS脚本反爬虫特性将无法达到预期效果,并且有可能造 成页面访问异常。
步骤6 根据业务配置JS脚本反爬虫规则,相关参数说明如表10-16所示。
JS脚本反爬虫规则提供了“防护所有路径”和“防护指定路径”两种防护动作。
● 除了指定路径以外,防护其他所有路径
选择“防护所有路径”,在JS脚本反爬虫规则的配置页面左上角,单击“添加排 除防护路径”,配置防护路径后,单击“确定”。
用户指南 10 配置防护规则
图10-83 添加排除防护路径
● 只防护指定路径时
选择“防护指定路径”,在JS脚本反爬虫规则的配置页面左上角,单击“添加防 护路径”,配置防护路径后,单击“确定”。
图10-84 添加指定防护路径
表10-16 JS 脚本反爬虫防护规则参数说明
URL用来定义网页的地 址。基本的URL格式如 下:
协议名://域名或IP地址[:端 口号]/[路径名/…/文件 名]。
例如,URL为“http://
www.example.com/
admin”,则“路径”设 置为“/admin”。
说明
● 该路径不支持正则。
● 路径里不能含有连续的 多条斜线的配置,如
“///admin”,WAF引 擎会将“///”转为
“/”。
/admin
逻辑 在“逻辑”下拉列表中选
假如防护域名“www.example.com”已接入WAF,您可以参照以下操作步骤验证反爬 虫防护效果。
步骤1 执行JS脚本工具,爬取网页内容。
步骤2 在“特征反爬虫”页签,开启“脚本工具”,“防护动作”设置为“仅记录”(WAF
用户指南 10 配置防护规则
图10-85 开启“脚本工具”
步骤3 开启网站反爬虫。
图10-86 网站反爬虫配置框
步骤4 在左侧导航树中,单击“防护事件”,进入“防护事件”页面,您可以查看该防护事 件。
图10-87 查看防护事件-脚本爬虫
----结束
配置示例-搜索引擎
放行百度或者谷歌的搜索引擎,同时拦截百度的POST请求。
步骤1 参照步骤3将“搜索引擎”设置为放行,即将“搜索引擎”的“状态”设置为 。 步骤2 参照配置精准访问防护规则配置如图10-88的规则。
图10-88 拦截 POST 请求
----结束