- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 创建用户组并授权使用WAF
- 购买WAF
- 网站接入WAF
- 查看防护事件
-
配置防护策略
- 防护配置概述
- 配置Web基础防护规则防御常见Web攻击
- 配置智能访问控制规则精准智能防御CC攻击
- 配置CC攻击防护规则防御CC攻击
- 配置精准访问防护规则定制化防护策略
- 配置IP黑白名单规则拦截/放行指定IP
- 配置地理位置访问控制规则拦截/放行特定区域请求
- 配置威胁情报访问控制规则拦截/放行指定IP库的IP
- 配置网页防篡改规则避免静态网页被篡改
- 配置网站反爬虫防护规则防御爬虫攻击
- 配置防敏感信息泄露规则避免敏感信息泄露
- 配置全局白名单规则对误报进行忽略
- 配置隐私屏蔽规则防隐私信息泄露
- 配置扫描防护规则自动阻断高频攻击
- 创建引用表对防护指标进行批量配置
- 配置攻击惩罚标准封禁访问者指定时长
- 条件字段说明
- WAF覆盖的应用类型
- 查看总览
- 网站设置
- 策略管理
- 安全报告
- 高阶功能
- 对象管理
- 系统管理
- 权限管理
- 监控与审计
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 云模式防护网站管理
- 独享模式防护网站管理
- 防护策略管理
-
策略规则管理
- 修改单条规则的状态
- 查询cc规则列表
- 创建cc规则
- 根据Id查询cc防护规则
- 更新cc防护规则
- 删除cc防护规则
- 查询精准防护规则列表
- 创建精准防护规则
- 根据Id查询精准防护规则
- 更新精准防护规则
- 删除精准防护规则
- 创建全局白名单(原误报屏蔽)规则
- 查询全局白名单(原误报屏蔽)防护规则
- 更新全局白名单(原误报屏蔽)防护规则
- 删除全局白名单(原误报屏蔽)防护规则
- 查询黑白名单规则列表
- 创建黑白名单规则
- 查询黑白名单防护规则
- 更新黑白名单防护规则
- 查询全局白名单(原误报屏蔽)规则列表
- 删除黑白名单防护规则
- 查询JS脚本反爬虫规则列表
- 更新JS脚本反爬虫规则防护模式
- 创建JS脚本反爬虫规则
- 查询JS脚本反爬虫防护规则
- 更新JS脚本反爬虫防护规则
- 删除JS脚本反爬虫防护规则
- 查询隐私屏蔽防护规则列表
- 创建隐私屏蔽防护规则
- 查询隐私屏蔽防护规则
- 更新隐私屏蔽防护规则
- 删除隐私屏蔽防护规则
- 查询攻击惩罚规则列表
- 创建攻击惩罚规则
- 根据Id查询攻击惩罚防护规则
- 更新攻击惩罚规则
- 删除攻击惩罚规则
- 查询地理位置访问控制规则列表
- 创建地理位置控制规则
- 查询地理位置控制防护规则
- 更新地理位置控制防护规则
- 删除地理位置控制防护规则
- 查询防篡改规则列表
- 创建防篡改规则
- 查询防篡改防护规则
- 删除防篡改防护规则
- 网页防篡改规则更新缓存
- 查询防敏感信息泄露规则列表
- 创建防敏感信息泄露规则
- 查询防敏感信息泄露防护规则
- 更新防敏感信息泄露防护规则
- 删除防敏感信息泄露防护规则
- 查询引用表列表
- 创建引用表
- 查询引用表
- 修改引用表
- 删除引用表
- 地址组管理
- 证书管理
- 防护事件管理
- 安全总览
- 局点支持特性查询
- 独享实例管理
- 日志配置管理
- 租户订购管理
- 租户域名查询
- 租户防护域名管理
- 系统管理
- 告警管理
- 附录
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询
- WAF基础知识
- Web应用防火墙是否能防护IP?
- Web应用防火墙支持对哪些对象进行防护?
- Web应用防火墙与漏洞管理服务有哪些区别?
- Web应用防火墙支持自定义POST拦截吗?
- Web应用防火墙是否支持IPv4和IPv6共存?
- WAF和HSS的网页防篡改有什么区别?
- Web应用防火墙支持哪些Web服务框架/协议?
- WAF可以防护使用HSTS策略/NTLM代理认证访问的网站吗?
- WAF转发和Nginx转发有什么区别?
- Web应用防火墙和云防火墙有什么区别?
- Web应用防火墙可以配置会话Cookie吗?
- WAF对SQL注入、XSS跨站脚本和PHP注入攻击的检测原理?
- WAF是否可以防护Apache Struts2远程代码执行漏洞(CVE-2021-31805)?
- 接入WAF后为什么漏洞扫描工具扫描出未开通的非标准端口?
- 多Project下使用Web应用防火墙的限制条件?
- 已使用华为云APIG还需要购买WAF吗?
- 本地文件包含和远程文件包含是指什么?
- QPS和请求次数有什么区别?
- 接入Web应用防火墙的域名需要备案吗?
- Web应用防火墙支持自定义授权策略吗?
- 为什么Cookie中有HWWAFSESID或HWWAFSESTIME字段?
- 云模式、独享模式可以互相切换吗?
- 同一防护域名/IP可以添加到不同的账号进行防护吗?
- 什么是区域和可用区?
- Web应用防火墙可以跨区域使用吗?
- Web应用防火墙支持防护哪些区域?
- WAF可以跨企业项目使用吗?
- 购买或升级WAF时选择了企业项目,其他企业项目可以使用该企业项目的WAF吗?
- 购买和变更规格
-
网站接入
- 如何在添加域名中配置防护域名?
- 添加域名时,防护网站端口需要和源站端口配置一样吗?
- 如何放行云模式WAF的回源IP段?
- 删除防护域名后CNAME记录会保留多久?
- 后端服务器配置多个源站地址时的注意事项?
- Web应用防火墙支持配置泛域名吗?
- Web应用防火墙支持防护中文域名吗?
- 泛域名和单域名都接入WAF,WAF如何转发访问请求?
- 添加域名时提示“非法的源站地址”,如何处理?
- 添加防护域名时,提示“其他人已经添加了该域名,请确认该域名是否属于你”,如何处理?
- 添加域名时,为什么不能选择对外协议?
- 云模式服务器的源站地址可以配置成CNAME吗?
- 如何在华为云的云解析服务上进行DNS验证?
- 未配置子域名和TXT记录的影响?
- 如何查询域名提供商?
- 新旧CNAME的区别?
- 域名接入Web应用防火墙后,能通过IP访问网站吗?
- 如何设置使流量不经过WAF,直接访问源站?
- 域名接入WAF后,为什么无法开启防护模式?
-
防护规则
- Web基础防护支持设置哪几种防护等级?
- CC攻击的防护峰值是多少?
- 在什么情况下使用Cookie区分用户?
- CC规则里“限速频率”和“放行频率”的区别?
- 配置“人机验证”CC防护规则后,验证码不能刷新,验证一直不通过,如何处理?
- 如何不拦截带有.js的文件?
- Web应用防火墙可以批量配置黑白名单吗?
- Web应用防火墙可以导入/导出黑白名单吗?
- 开启JS脚本反爬虫后,为什么客户端请求获取页面失败?
- 开启网站反爬虫中的“其他爬虫”会影响网页的浏览速度吗?
- JS脚本反爬虫的检测机制是怎么样的?
- 哪些情况会造成WAF配置的防护规则不生效?
- 如果只允许指定地区的IP可以访问,如何设置防护策略?
- 拦截所有来源IP或仅允许指定IP访问防护网站,WAF如何配置?
- 系统自动生成策略包括哪些防护规则?
- 开启网页防篡改后,为什么刷新页面失败?
- 黑白名单规则和精准访问防护规则的拦截指定IP访问请求,有什么差异?
- 如何处理Appscan等扫描器检测结果为Cookie缺失Secure/HttpOnly?
- 如何拦截4层链接对应的IP?
- IPv6防护
- 证书管理
- 防护日志
- 内容安全检测服务
-
产品咨询
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置网站反爬虫防护规则防御爬虫攻击
您可以通过配置网站反爬虫防护规则,防护搜索引擎、扫描器、脚本工具、其它爬虫等爬虫,以及自定义JS脚本反爬虫防护规则。
如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通操作权限,才能为该企业项目下域名配置防护策略。
前提条件
- 已添加防护网站或已新增防护策略。
- 云模式-CNAME接入的接入方式参见将网站接入WAF防护(云模式-CNAME接入)章节。
- 云模式-ELB接入的接入方式参见 将网站接入WAF防护(云模式-ELB接入)章节。
- 独享模式的接入方式参见将网站接入WAF防护(独享模式)章节。
- 如果使用独享WAF,确保独享引擎已升级到最新版本,具体的操作请参见升级独享引擎实例。
约束条件
- JS脚本反爬虫依赖浏览器的Cookie机制、JavaScript解析能力,如果客户端浏览器不支持Cookie,此功能无法使用,开启后会造成永远无法访问源站。
- 如果您的业务接入了CDN服务,请谨慎使用JS脚本反爬虫。
- 云模式入门版和标准版本不支持该功能。
- 防护网站部署模式为“云模式-ELB接入”时,不支持JS脚本反爬虫功能。
- 开启JS脚本反爬虫后,如果不能查看拦截记录,请参见开启JS脚本反爬虫后,为什么有些请求被WAF拦截但查不到拦截记录?。
- 网站反爬虫“js挑战”的防护动作为“仅记录”,“js验证”的防护动作为人机验证(即js验证失败后,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。
- WAF的JS脚本反爬虫功能只支持get请求,不支持post请求。
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验证”的防护动作为人机验证(即js验证失败后,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。
配置网站反爬虫防护规则
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域或项目。
- 单击页面左上方的
,选择“安全与合规 > Web应用防火墙 WAF”。
- 在左侧导航树中,选择“防护策略”,进入“防护策略”页面。
- 单击目标策略名称,进入目标策略的防护配置页面。
- 选择“网站反爬虫”配置框,用户可根据自己的需要开启或关闭网站反爬虫策略。
:开启状态。
:关闭状态。
- 选择“特征反爬虫”页签,根据您的业务场景,开启合适的防护功能,如图3所示,检测项说明如表1所示。
特征反爬虫规则提供了两种防护动作:
表1 特征反爬虫检测项说明 检测项
说明
功能说明
搜索引擎
搜索引擎执行页面内容爬取任务,如Googlebot、Baiduspider。
开启后,WAF将检测并阻断搜索引擎爬虫。
扫描器
执行漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap。
开启后,WAF将检测并阻断扫描器爬虫。
脚本工具
用于执行自动化任务、程序脚本等,如httpclient、okhttp、python程序等。
开启后,WAF将检测并阻断执行自动化任务、程序脚本等。
说明:
如果您的应用程序中使用了httpclient、okhttp、python程序等脚本工具,建议您关闭“脚本工具”,否则,WAF会将使用了httpclient、okhttp、python程序等脚本工具当成恶意爬虫,拦截该应用程序。
其他爬虫
各类用途的爬虫程序,如站点监控、访问代理、网页分析等。
说明:
“访问代理”是指当网站接入WAF后,为避免爬虫被WAF拦截,爬虫者使用大量IP代理实现爬虫的一种技术手段。
开启后,WAF将检测并阻断各类用途的爬虫程序。
- 选择“JS脚本反爬虫”页签,用户可根据业务需求更改JS脚本反爬虫的“状态”。
默认关闭JS脚本反爬虫,单击
,在弹出的“警告”提示框中,单击“确定”,开启JS脚本反爬虫
。
防护动作:拦截、仅记录、人机验证(JavaScript挑战失败,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。
- 根据业务配置JS脚本反爬虫规则,相关参数说明如表2所示。
JS脚本反爬虫规则提供了“防护所有请求”和“防护指定请求”两种防护动作。
表2 JS脚本反爬虫参数说明 参数
参数说明
示例
规则名称
自定义规则名称。
waf
规则描述
可选参数,设置该规则的备注信息。
-
生效时间
立即生效。
立即生效
条件列表
条件设置参数说明如下:
- 字段:在下拉列表中选择需要防护的字段,当前仅支持“路径”、“User Agent”。
- 子字段
- 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
说明:
当“逻辑”关系选择“包含任意一个”、“不包含任意一个”、“等于任意一个”、“不等于任意一个”、“前缀为任意一个”、“前缀不为任意一个”、“后缀为任意一个”或者“后缀不为任意一个”时,需要选择引用表。
- 内容:输入或者选择条件匹配的内容。
- 大小写敏感:“字段”选择“路径”时,可配置该参数。开启后,系统在检测配置的路径时,将区分大小写。能够帮助系统更准确地识别和处理各种爬虫请求,从而有效提升反爬虫策略的精确度和有效性。
“路径”包含“/admin/”
优先级
设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的优先级依次进行匹配,优先级较小的规则优先匹配。
5
相关操作
- 规则添加成功后,默认的“规则状态”为“已开启”,如果您暂时不想使该规则生效,可在目标规则所在行的“操作”列,单击“关闭”。
- 如果需要修改添加的JS脚本反爬虫规则,可单击待修改的路径规则所在行的“修改”,修改该规则。
- 如果需要删除添加的JS脚本反爬虫规则时,可单击待删除的路径规则所在行的“删除”,删除该规则。
配置示例-仅记录脚本工具爬虫
假如防护域名“www.example.com”已接入WAF,您可以参照以下操作步骤验证反爬虫防护效果。
- 执行JS脚本工具,爬取网页内容。
- 在“特征反爬虫”页签,开启“脚本工具”,“防护动作”设置为“仅记录”(WAF检测为攻击行为后,只记录不阻断)。
图6 开启“脚本工具”
- 开启网站反爬虫。
图7 网站反爬虫配置框
- 在左侧导航树中,单击“防护事件”,进入“防护事件”页面,您可以查看该防护事件。
图8 查看防护事件-脚本爬虫
配置示例-搜索引擎
放行百度或者谷歌的搜索引擎,同时拦截百度的POST请求。
- 参照6将“搜索引擎”设置为放行,即将“搜索引擎”的“状态”设置为
。
- 参照配置精准访问防护规则定制化防护策略配置如图9的规则。