当网站、H5页面,或App内嵌H5页面业务面临恶意爬虫、自动化脚本攻击、黄牛抢购等威胁时,可以创建Bot-Web防护模板,防御网页爬虫,确保业务安全。
操作步骤
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。在左侧导航栏,选择,在页签,单击新建模板。
步骤一:定义基本信息
填写一个便于识别的模板名称与模板介绍。
选择是否设置为默认模板;Bot管理Web防护模块下最多仅允许存在一个默认模板;默认模板将自动关联后续新增的防护对象或防护组,并为新关联的防护对象或防护组自动配置WebSDK集成。
步骤二:配置防护场景
选择模版模式,支持智能打分模式与自定义模式模式。
智能打分模式仅在新版 Agentic Bot 中支持。若控制台中未找到该内容,说明当前使用的是旧版 Bot 管理;如需使用,请升级至 Agentic Bot,升级方式请参见【公告】Web应用防火墙Bot管理模块升级通知。
智能打分模式:规则命中后,系统基于内置规则自动打分,并执行设定的拦截、验证或观察等处置动作,适用于快速配置场景。
自定义模式:系统基于阿里云经验沉淀的常见 Bot 特征库,将规则按类型划分,需逐条配置各规则的处置动作,适用于精细化管控场景。
智能打分模式
根据业务形态选择防护场景;若无法确定,建议选择通用防护。
选择防护目标特征,支持全局生效与定制匹配条件两种类型。
全局生效:适用于仅存在网页或H5环境的场景,对防护对象下的所有流量生效。
定制匹配条件:适用于需根据流量特征区分网页或H5流量的场景,例如网页与API、App、小程序共用同一接口但仅需防护网页流量,或需对秒杀、登录等特定业务接口进行精细化防护的场景。
全局生效
配置防护目标为全局生效,无需输入流量特征。
定制匹配条件
配置防护目标为定制匹配条件,依据输入特征进行匹配。通过单击新增条件添加一个条件。每个条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:
说明若规则包含多个条件,则请求必须满足所有条件(逻辑与关系),才能命中该规则。关于匹配字段和逻辑符的详细说明,请参见匹配条件说明。
匹配字段
逻辑符
匹配内容
说明
URI Path
包含
/login.php当请求的路径包含
/login.php时,则请求命中该规则。IP
属于
192.1.XX.XX当客户端IP为
192.1.XX.XX时,则请求命中该规则。
勾选是否排除静态文件,静态文件请求通常不涉及业务逻辑,且其内容本身不易被用于注入攻击,排除静态文件可减少检测负载,使WAF专注于保护动态接口。建议选择默认的静态文件类型,也可自定义添加类型。
在无感验签区域,可编辑如下验证规则。该功能默认开启,建议保持开启状态。
选择验证模式,支持JS验证或令牌挑战两种类型。
JS验证:适用于低强度日常防护场景。
令牌挑战:适用于高强度对抗场景,建议在重点防护时段(如大促活动开始前数分钟)启用。
JS验证
规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码获取通行证并重发请求,而恶意流量由于未携带通行证从而被拦截,认证通过的客户端在一段时间(默认30分钟)内,其所有请求将被直接放行,无需重复校验。
令牌挑战
规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码进行请求加签并重发请求,而恶意请求由于无签名信息从而被拦截。可选项:
签名时间戳异常:指签名时间戳异常时,请求将被拦截。
WebDriver攻击:指遭遇WebDriver攻击时,请求将被拦截。
按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。
在搜索引擎爬虫区域,可编辑如下针对搜索引擎的放行规则。该功能默认开启,建议保持开启状态。
按需选择放行的搜索引擎爬虫。
按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。
在Bot 打分区间设置区域,支持通过拖动分界球,设置各分数区间及其对应的处置动作。各区间需配置以下内容:
处置动作:建议分数区间由低至高依次采用逐步严格的处置动作,例如观察、滑块、拦截,具体信息,请参见处置动作说明。
规则灰度与生效模式:具体信息,请参见规则灰度与生效模式说明。
自定义模式
选择防护目标特征,支持全局生效与定制匹配条件两种类型。
全局生效:适用于仅存在网页或H5环境的场景,对防护对象下的所有流量生效。
定制匹配条件:适用于需根据流量特征区分网页或H5流量的场景,例如网页与API、App、小程序共用同一接口但仅需防护网页流量,或需对秒杀、登录等特定业务接口进行精细化防护的场景。
全局生效
配置防护目标为全局生效,无需输入流量特征。
定制匹配条件
配置防护目标为定制匹配条件,依据输入特征进行匹配。通过单击新增条件添加一个条件。每个条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:
说明若规则包含多个条件,则请求必须满足所有条件(逻辑与关系),才能命中该规则。关于匹配字段和逻辑符的详细说明,请参见匹配条件说明。
匹配字段
逻辑符
匹配内容
说明
URI Path
包含
/login.php当请求的路径包含
/login.php时,则请求命中该规则。IP
属于
192.1.XX.XX当客户端IP为
192.1.XX.XX时,则请求命中该规则。
勾选是否排除静态文件,静态文件请求通常不涉及业务逻辑,且其内容本身不易被用于注入攻击,排除静态文件可减少检测负载,使WAF专注于保护动态接口。建议选择默认的静态文件类型,也可自定义添加类型。
在无感验签区域,可编辑如下验证规则。该功能默认开启,建议保持开启状态。
选择验证模式,支持JS验证或令牌挑战两种类型。
JS验证:适用于低强度日常防护场景。
令牌挑战:适用于高强度对抗场景,建议在重点防护时段(如大促活动开始前数分钟)启用。
JS验证
规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码获取通行证并重发请求,而恶意流量由于未携带通行证从而被拦截,认证通过的客户端在一段时间(默认30分钟)内,其所有请求将被直接放行,无需重复校验。
令牌挑战
规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码进行请求加签并重发请求,而恶意请求由于无签名信息从而被拦截。可选项:
签名时间戳异常:指签名时间戳异常时,请求将被拦截。
WebDriver攻击:指遭遇WebDriver攻击时,请求将被拦截。
按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。
在风险识别区域,可以单击新建,创建风险识别规则。基于WAF内建的手机号信誉数据库,实现针对黄牛等异常手机号的访问阻断,适用于手机号登录注册类场景。
重要风险识别属于收费功能。具体计费规则如下:
计费条件:仅在完成规则配置且实际流量命中时产生费用,其他情况不计费。
计费单价:0.05元/次。
结算方式:采用后付费模式,按天生成账单。
账号提取:单击新增账号配置账号类型和账号位置。最多添加五个条件,条件之间为或关系。
配置示例:若登录请求采用 GET 方法,且请求参数格式为
username=158***&password=***,请按以下方式进行配置:账号位置:选择 Query参数。
参数名称:填写 username。
配置完成后,WAF 即可准确提取该请求中的手机号信息,用于后续的安全匹配与检测。
风险标签:单击新增标签进行配置,最多添加五个条件,条件之间为或关系。
疑似小号:疑似第三方平台提供手机号,非个人用户。
诈骗风险:疑似历史上存在欺诈行为。
垃圾注册:疑似使用非法工具进行用户注册,用于后续的营销活动等。
营销作弊:疑似使用非法工具参与营销活动,如批量注册领取优惠券等。
黄牛账号:疑似使用非法工具参与抢票或其他秒杀类活动。
风险等级默认均为高风险,支持配置高风险、中高风险、中风险,可根据业务需求自由选择。
规则分类:将其分类为疑似BOT或恶意BOT。
处置动作:具体信息,请参见处置动作说明。
规则灰度与生效模式:具体信息,请参见规则灰度与生效模式说明。
在策略配置区域,系统基于阿里云经验沉淀的常见 Bot 特征库,将规则按类型划分。针对目标规则,可以执行以下操作:
启用/禁用:单击状态列的
图标,开启或关闭规则。修改规则:单击编辑按钮,对规则进行自定义调整。设置处置动作、规则灰度与生效模式,具体信息,请参见处置动作说明与规则灰度与生效模式说明。
修改分类:对于恶意BOT与疑似BOT规则,若实际分类不符合业务需求,可以在Bot类型列中对其分类进行修改。
配置建议:
重要误杀风险提示:以下部分规则存在误杀(误拦截)风险,不当的配置可能导致正常请求被拦截。建议在正式启用规则前,先将处置动作设置为观察,或结合规则灰度,优先在非生产环境进行测试,并根据实际业务特征进行调优后再上线。
CC类规则统计说明:所有CC计数类规则(如IP访问路径较少)在设定的统计时长内,一旦达到阈值即刻处置,不会等到统计时长结束。统计对象进入黑名单之后,若统计对象的请求继续触发规则,系统将持续计数并刷新其黑名单超时时间。
异常浏览器探针
规则名称
误杀风险说明
开发者工具、模拟器工具
低风险
浏览器环境异常
低风险
自动化工具、无头浏览器
低风险
系统环境异常
低风险,对于部分使用 XP 操作系统的用户存在风险
时间戳异常
中风险,对于打开网页超过 2 小时未刷新,并直接提交的请求,可能存在误杀
WebSDK版本异常
低风险,对于手工集成 WebSDK 的老版本用户可能存在风险
设备伪造
规则名称
误杀风险说明
设备硬件信息伪造、浏览器属性伪造、操作系统与环境伪造
低风险
采集信息伪造、网络与地理位置伪造
低风险,WAF前置七层代理(如CDN、高防)但未启用代理配置,可能出现源IP识别不准导致的误杀
爬虫客户端
规则名称
误杀风险说明
Python工具流量
低风险
爬虫工具流量
低风险
操作行为异常
规则名称
误杀风险说明
所有规则
中风险,可能误杀鼠标灵敏度过低的用户
脚本客户端
规则名称
误杀风险说明
所有规则
低风险,需要根据业务情况判断,例如Native APP 环境不能开启Okhttp工具流量规则;使用flutter构建业务关联时,不能开启Dart工具流量规则
IDC机房
规则名称
误杀风险说明
所有规则
中风险,对于支付回调接口,阿里云无影访问,WAF前置七层代理但未启用代理配置场景,可能误杀
威胁情报
规则名称
误杀风险说明
伪造搜索引擎蜘蛛
低风险
爬虫威胁情报IP库、爬虫威胁情报指纹库
中风险,对于公共出口网络(如小区宽带、公司)或WAF前置七层代理但未启用代理配置场景,可能出现源IP识别错误导致误杀,建议将处置动作设为滑块或JS校验
AI智能防护
规则名称
误杀风险说明
路径序列异常、设备异常、恶意团伙行为、资源分布异常、时序异常
中风险,对于公共出口网络(如小区宽带、公司)或WAF前置七层代理但未启用代理配置场景,可能出现源IP识别错误导致误杀,建议将处置动作设为滑块或JS校验
会话异常
高风险,对于公共出口网络(如小区宽带、公司)或WAF前置七层代理但未启用代理配置场景,可能出现源IP识别错误导致误杀,建议将处置动作设为滑块或JS校验
访问行为异常
规则名称
误杀风险说明
持续性无采集信息访问、持续性无Session访问
低风险,必须集成 WebSDK,否则不携带采集信息
交互轨迹批量重放
低风险
同一Session关联IP频繁变化、同一设备关联IP频繁变化
低风险
IP访问路径较少、IP访问路径较多、客户端种类频繁变化、同一IP关联UA频繁变化
中风险,对于公共出口网络(如小区宽带、公司)或WAF前置七层代理但未启用代理配置场景,可能出现源IP识别错误导致误杀,建议将处置动作设为滑块或JS校验
搜索引擎爬虫客户端
规则名称
误杀风险说明
所有规则
建议保持默认配置,放行请求
步骤三:选择生效范围
在生效对象区域,选中需要应用的防护对象或防护对象组,单击
图标,将该防护对象或防护对象组移入已选择区域内,单击确定。
步骤四:Web SDK集成
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。在左侧导航栏,选择,进入页签。
阿里云提供基于 JavaScript 的 Web SDK,用于增强浏览器环境下的防护能力并解决兼容性问题。系统支持以下两种集成模式:
自动集成:一键开启,无需修改业务代码。
手动集成:适用于 FC、SAE 等不支持自动注入的场景,需手动配置代码。
自动集成状态:大多数防护对象在完成上一步配置后已默认开启自动集成,无需执行本步骤操作。
特殊场景要求:
若防护目标涉及跨域域名,必须在WebSDK集成列表页开启对应域名的自动集成开关,或采用手动集成方式。
FC、SAE 接入的防护对象不支持自动注入 Web SDK,必须使用手动集成方式。
功能依赖性:Bot 防护能力依赖 SDK 采集的数据。未集成 SDK 将导致防护能力缺失,强烈建议完成集成。
自动集成
在WebSDK集成列表页签中,查看已自动集成的防护对象。可在此页面关闭集成或调整灰度比例。
开启自动集成后,系统将在防护对象的 HTML 页面中自动注入 SDK。该 SDK 主要用于采集浏览器环境信息、黑产工具探针数据及用户操作行为日志(不包含个人敏感信息),以增强防护能力。
同时,系统会在 HTTP 响应报文的 Header 中植入
ssxmod_itna、ssxmod_itna2、ssxmod_itna3等 Cookie,用于获取客户端浏览器指纹。采集的指纹信息包括 HTTP 报文 Host 字段、浏览器窗口高度与宽度等特征数据。
手动集成
在WebSDK集成列表页签中,然后单击说明中的获取SDK链接。请将获取到的<script>节点置于页面上其他所有<script>节点之前以保证最先加载。
日常运维
编辑模板
单击目标模板操作列的编辑,在编辑模板面板中对模板进行编辑。
删除模板
单击目标模板操作列的删除,在删除对话框中确认删除信息后单击确认。
复制模板
单击目标模板操作列的复制,在复制对话框中确认复制信息后单击确认。
开启或关闭模板
新建的模板默认开启,单击目标模板模板开关列的
开关,可开启或关闭该模板。查看规则
单击目标模板的
图标,查看该模板的规则信息,单击目标规则状态列的
开关,可开启或关闭对应规则。针对已启用的规则,可查看其命中趋势。若规则动作类型为JS验证、滑块或严格滑块,还可查看人机校验通过率。
处置动作说明
配置项 | 说明 |
JS验证 | WAF向客户端返回一段JavaScript验证代码,标准浏览器将自动执行该代码。若客户端正常执行完成,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求,否则拦截请求。 |
拦截 | 拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面。 说明 WAF默认使用统一的拦截响应页面,也可以通过自定义响应功能,自定义拦截响应页面。 |
观察 | 不拦截命中规则的请求,仅通过日志记录请求命中的情况。在试运行规则时,可以先通过观察模式分析WAF日志,以确认未产生误拦截,再将其调整为其他规则动作。 |
滑块 | WAF向客户端返回滑动验证页面。若客户端成功完成滑动验证,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求,否则拦截请求。 说明 WAF默认使用统一的滑块响应页面,也可以通过自定义响应功能,自定义滑块响应页面。 |
严格滑块 | WAF向客户端返回滑动验证页面。若客户端成功完成滑动验证,则放行该请求;否则拦截请求。在此模式下,客户端每次命中该规则的请求均需进行滑动验证。 |
回源标记 | 表示客户可以自定义Header名称及内容(规则类型、规则ID、网页端UMID),WAF不会直接处理,而是会通过新增Header的方式将命中信息返回给源站,客户可以与后端风控系统结合做业务侧处理。 |
启用JS验证或滑块后,客户端通过验证时,WAF将在响应头中通过Set-Cookie 设置名为acw_sc__v2(JS验证)或 acw_sc__v3(滑块验证)的 Cookie。客户端在后续请求中会在 Cookie 头中携带该标识。
规则灰度与生效模式说明
在规则灰度区域,配置规则针对不同维度的对象的生效比例。开启规则灰度后,还需要设置维度和灰度比例。维度包括:IP、自定义Header、自定义参数、自定义Cookie、Session、网页端UMID。
说明规则灰度根据配置的维度生效,而非对请求按比例随机生效规则。例如,当维度为IP且灰度比例为10%时,WAF将选择约10%的IP地址;被选中的IP地址,其所有请求均应用该规则,而非对所有请求按10%的比例随机应用。
在生效模式区域,选择规则的生效时间。
永久生效(默认):防护模板开启时,规则永久生效。
按时间段生效:防护规则仅在指定的一段时间内生效。
按周期生效:防护规则仅在指定的时间周期内生效。
应用于生产环境
为避免影响正常业务,请勿在生产环境直接创建并启用模板。建议遵循以下流程进行部署。
配置白名单:在创建模板前,建议创建白名单规则,将可信IP加入白名单,防止可信请求被新规则误拦截。
灰度测试:模板创建完成后,可以使用以下三种方式,在部署到生产环境前进行观察测试。
将规则应用于非生产环境进行测试。
将处置动作设置为观察。
开启规则灰度。
应用至生产环境:确认误报率在可接受范围内后,将处置动作调整为目标动作,并应用于生产环境。
持续监控与优化:持续关注安全报表与日志,根据业务变化和实际防护效果,动态调整和优化规则。
配额与限制
自定义模式模板中的异常浏览器探针、设备伪造、操作行为异常、AI智能防护、访问行为异常类规则必须集成Web SDK,否则无法正常使用。
自定义模式模板中的爬虫客户端、脚本客户端、AI智能防护、访问行为异常类规则不支持FC、SAE接入的防护对象。
FC、SAE接入的防护对象不支持自动集成WebSDK,需要选择手动集成方式。
常见问题
按量付费版WAF如何关闭Bot管理?
若不再需要使用 Bot 管理模块,请删除所有 Bot 管理 Web/App 防护模板及所有高级自定义规则模板。删除完成后,Bot 管理功能将停止计费。
WAF 2.0的数据风控功能如何迁移至WAF 3.0使用?
WAF 已停止维护旧版数据风控功能,建议直接使用 Bot 管理模块进行替代。WAF 2.0 的数据风控规则无法直接复用或自动迁移至 WAF 3.0,需在 WAF 3.0 控制台重新配置。具体配置步骤请参见本文。