- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 创建用户组并授权使用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防护
- 证书管理
- 防护日志
- 内容安全检测服务
-
产品咨询
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用WAF阻止爬虫攻击
应用场景
网络爬虫为网络信息收集与查询提供了极大的便利,但同时也对网络安全产生以下负面影响:
- 网络爬虫会根据特定策略尽可能多地“爬过”网站中的高价值信息,占用服务器带宽,增加服务器的负载
- 恶意用户利用网络爬虫对Web服务发动DoS攻击,可能使Web服务资源耗尽而不能提供正常服务
- 恶意用户利用网络爬虫抓取各种敏感信息,造成网站的核心数据被窃取,损害企业经济利益
Web应用防火墙可以通过常规检测和Webshell检测(识别User-Agent)、网站反爬虫(检查浏览器合法性)和CC攻击防护(限制访问频率)三个反爬虫策略,全方位帮您解决业务网站遭受的爬虫问题。
方案概述
爬虫检测流程如图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次。
约束与限制
资源与成本规划
资源 |
资源说明 |
每月费用 |
---|---|---|
Web应用防火墙 |
云模式-专业版:
|
具体的计费方式及标准请参考计费说明。 |
步骤一:购买云模式专业版
以购买WAF云模式标准版为例进行介绍。
- 登录华为云管理控制台。
- 在控制台页面中选择“安全与合规 > Web应用防火墙 WAF”,进入Web应用防火墙控制台。
- 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“云模式”。
- “区域”:根据防护业务的所在区域就近选择购买的WAF区域。
- “版本规格”:选择“专业版”。
- “扩展包”及“购买时长”:根据具体情况进行选择。
- 确认参数配置无误后,在页面右下角单击“立即购买”。
- 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
- 进入“付款”页面,选择付款方式进行付款。
步骤二:将网站信息添加到WAF
此处以云模式-CNAME接入为例进行介绍。
- 云模式-ELB接入方式请参见将网站接入WAF防护(云模式-ELB接入)。
- 独享模式接入方式请参见将网站接入WAF防护(独享模式)。
- 在左侧导航树中,选择“网站设置”,进入网站设置列表。
- 在网站列表的左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“开始配置”。
- 根据界面提示,配置网站信息,如表2所示。
图3 基础信息配置
表2 重点参数说明 参数
参数说明
取值样例
防护域名
需要添加到WAF中防护的域名。
- 域名已完成备案
- 支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
www.example.com
防护端口
需要防护的域名对应的业务端口。
标准端口
服务器配置
网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。
- 源站端口:WAF转发客户端请求到服务器的业务端口。
- 权重:负载均衡算法将按权重将请求分配给源站。
对外协议:HTTP
源站协议:HTTP
源站地址:IPv4 XXX .XXX.1.1
源站端口:80
是否使用七层代理
在WAF前是否使用了七层代理产品。
根据实际情况进行选择。
是
- 单击“下一步”,根据界面提示,完成WAF回源IP加白、本地验证和修改域名DNS解析设置的操作。
图4 添加域名完成
步骤三:开启常规检测和Webshell检测(识别User-Agent)
开启常规检测和Webshell检测后,WAF可以检测和拦截恶意爬虫、网马等威胁。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在目标域名所在行的“防护策略”栏中,单击“已开启N项防护”,进入“防护策略”页面。
- 确认“Web基础防护”的状态为
。
图5 Web基础防护配置框 - 在“防护配置”页面,开启“常规检测”和“Webshell检测”开关。
图6 防护配置
当WAF检测到恶意爬虫对网站进行爬取时,将立即拦截并记录该事件,您可以在“防护事件”页面查看爬虫防护日志。
步骤四:开启网站反爬虫(检查浏览器合法性)
开启网站反爬虫,WAF可以动态分析网站业务模型,结合人机识别技术和数据风控手段,精准识别爬虫行为。
- 选择“网站反爬虫”配置框,开启网站反爬虫。
:开启状态。
:关闭状态。
- 在“特征反爬虫”页面,开启“扫描器”,其他选项根据业务需要进行选择。
图7 特征反爬虫防护
- 选择“JS脚本反爬虫”页签,用户可根据业务需求更改JS脚本反爬虫的“状态”。
默认关闭JS脚本反爬虫,单击
,在弹出的“警告”提示框中,单击“确定”,开启JS脚本反爬虫
。
防护动作:拦截、仅记录、人机验证(JavaScript挑战失败,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。
- 根据业务配置JS脚本反爬虫规则,相关参数说明如表3所示。
JS脚本反爬虫规则提供了“防护所有请求”和“防护指定请求”两种防护动作。
表3 JS脚本反爬虫参数说明 参数
参数说明
示例
规则名称
自定义规则名称。
waf
规则描述
可选参数,设置该规则的备注信息。
-
生效时间
立即生效。
立即生效
条件列表
条件设置参数说明如下:
- 字段:在下拉列表中选择需要防护的字段,当前仅支持“路径”、“User Agent”。
- 子字段
- 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
说明:
当“逻辑”关系选择“包含任意一个”、“不包含任意一个”、“等于任意一个”、“不等于任意一个”、“前缀为任意一个”、“前缀不为任意一个”、“后缀为任意一个”或者“后缀不为任意一个”时,需要选择引用表。
- 内容:输入或者选择条件匹配的内容。
- 大小写敏感:“字段”选择“路径”时,可配置该参数。开启后,系统在检测配置的路径时,将区分大小写。能够帮助系统更准确地识别和处理各种爬虫请求,从而有效提升反爬虫策略的精确度和有效性。
“路径”包含“/admin/”
优先级
设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的优先级依次进行匹配,优先级较小的规则优先匹配。
5
开启该防护后,非浏览器的访问将不能获取业务页面。
步骤五:配置CC攻击防护(限制访问频率)
开启CC攻击防护,限制单个IP/Cookie/Referer访问者对您的网站上特定路径(URL)的访问频率,缓解CC攻击对业务的影响。
- 确认“CC攻击防护”的“状态”为“开启”
。
图10 CC防护规则配置框 - 在“CC攻击防护”规则配置列表的左上方,单击“添加规则”。以IP限速和人机验证为例,添加IP限速规则,如图11所示。
设置成功后,当用户访问超过限制后需要输入验证码才能继续访问。