使用Bot管理防护Web业务

更新时间:
复制 MD 格式

当网站、H5页面,或App内嵌H5页面业务面临恶意爬虫、自动化脚本攻击、黄牛抢购等威胁时,可以创建Bot-Web防护模板,防御网页爬虫,确保业务安全。

操作步骤

登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。在左侧导航栏,选择防护配置 > BOT管理 > Bot防护模板,在Web防护 > 防护模板页签,单击新建模板。

步骤一:定义基本信息

  1. 填写一个便于识别的模板名称与模板介绍。

  2. 选择是否设置为默认模板;Bot管理Web防护模块下最多仅允许存在一个默认模板;默认模板将自动关联后续新增的防护对象或防护组,并为新关联的防护对象或防护组自动配置WebSDK集成。

步骤二:配置防护场景

选择模版模式,支持智能打分模式与自定义模式模式。

说明

智能打分模式仅在新版 Agentic Bot 中支持。若控制台中未找到该内容,说明当前使用的是旧版 Bot 管理;如需使用,请升级至 Agentic Bot,升级方式请参见【公告】Web应用防火墙Bot管理模块升级通知。

  • 智能打分模式:规则命中后,系统基于内置规则自动打分,并执行设定的拦截、验证或观察等处置动作,适用于快速配置场景。

  • 自定义模式:系统基于阿里云经验沉淀的常见 Bot 特征库,将规则按类型划分,需逐条配置各规则的处置动作,适用于精细化管控场景。

    智能打分模式

    1. 根据业务形态选择防护场景;若无法确定,建议选择通用防护。

    2. 选择防护目标特征,支持全局生效与定制匹配条件两种类型。

      • 全局生效:适用于仅存在网页或H5环境的场景,对防护对象下的所有流量生效。

      • 定制匹配条件:适用于需根据流量特征区分网页或H5流量的场景,例如网页与API、App、小程序共用同一接口但仅需防护网页流量,或需对秒杀、登录等特定业务接口进行精细化防护的场景。

        全局生效

        配置防护目标为全局生效,无需输入流量特征。

        定制匹配条件

        配置防护目标为定制匹配条件,依据输入特征进行匹配。通过单击新增条件添加一个条件。每个条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:

        说明

        若规则包含多个条件,则请求必须满足所有条件(逻辑与关系),才能命中该规则。关于匹配字段和逻辑符的详细说明,请参见匹配条件说明。

        匹配字段

        逻辑符

        匹配内容

        说明

        URI Path

        包含

        /login.php

        当请求的路径包含/login.php时,则请求命中该规则。

        IP

        属于

        192.1.XX.XX

        当客户端IP为192.1.XX.XX时,则请求命中该规则。

    3. 勾选是否排除静态文件,静态文件请求通常不涉及业务逻辑,且其内容本身不易被用于注入攻击,排除静态文件可减少检测负载,使WAF专注于保护动态接口。建议选择默认的静态文件类型,也可自定义添加类型。

    4. 在无感验签区域,可编辑如下验证规则。该功能默认开启,建议保持开启状态。

      1. 选择验证模式,支持JS验证或令牌挑战两种类型。

        • JS验证:适用于低强度日常防护场景。

        • 令牌挑战:适用于高强度对抗场景,建议在重点防护时段(如大促活动开始前数分钟)启用。

          JS验证

          规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码获取通行证并重发请求,而恶意流量由于未携带通行证从而被拦截,认证通过的客户端在一段时间(默认30分钟)内,其所有请求将被直接放行,无需重复校验。

          令牌挑战

          规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码进行请求加签并重发请求,而恶意请求由于无签名信息从而被拦截。可选项:

          • 签名时间戳异常:指签名时间戳异常时,请求将被拦截。

          • WebDriver攻击:指遭遇WebDriver攻击时,请求将被拦截。

      2. 按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。

    5. 在搜索引擎爬虫区域,可编辑如下针对搜索引擎的放行规则。该功能默认开启,建议保持开启状态。

      1. 按需选择放行的搜索引擎爬虫。

      2. 按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。

    6. 在Bot 打分区间设置区域,支持通过拖动分界球,设置各分数区间及其对应的处置动作。各区间需配置以下内容:

      1. 处置动作:建议分数区间由低至高依次采用逐步严格的处置动作,例如观察、滑块、拦截,具体信息,请参见处置动作说明。

      2. 规则灰度与生效模式:具体信息,请参见规则灰度与生效模式说明。

    自定义模式

    1. 选择防护目标特征,支持全局生效与定制匹配条件两种类型。

      • 全局生效:适用于仅存在网页或H5环境的场景,对防护对象下的所有流量生效。

      • 定制匹配条件:适用于需根据流量特征区分网页或H5流量的场景,例如网页与API、App、小程序共用同一接口但仅需防护网页流量,或需对秒杀、登录等特定业务接口进行精细化防护的场景。

        全局生效

        配置防护目标为全局生效,无需输入流量特征。

        定制匹配条件

        配置防护目标为定制匹配条件,依据输入特征进行匹配。通过单击新增条件添加一个条件。每个条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:

        说明

        若规则包含多个条件,则请求必须满足所有条件(逻辑与关系),才能命中该规则。关于匹配字段和逻辑符的详细说明,请参见匹配条件说明。

        匹配字段

        逻辑符

        匹配内容

        说明

        URI Path

        包含

        /login.php

        当请求的路径包含/login.php时,则请求命中该规则。

        IP

        属于

        192.1.XX.XX

        当客户端IP为192.1.XX.XX时,则请求命中该规则。

    2. 勾选是否排除静态文件,静态文件请求通常不涉及业务逻辑,且其内容本身不易被用于注入攻击,排除静态文件可减少检测负载,使WAF专注于保护动态接口。建议选择默认的静态文件类型,也可自定义添加类型。

    3. 在无感验签区域,可编辑如下验证规则。该功能默认开启,建议保持开启状态。

      1. 选择验证模式,支持JS验证或令牌挑战两种类型。

        • JS验证:适用于低强度日常防护场景。

        • 令牌挑战:适用于高强度对抗场景,建议在重点防护时段(如大促活动开始前数分钟)启用。

          JS验证

          规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码获取通行证并重发请求,而恶意流量由于未携带通行证从而被拦截,认证通过的客户端在一段时间(默认30分钟)内,其所有请求将被直接放行,无需重复校验。

          令牌挑战

          规则触发后,WAF将返回JS代码,正常浏览器客户端将执行JS代码进行请求加签并重发请求,而恶意请求由于无签名信息从而被拦截。可选项:

          • 签名时间戳异常:指签名时间戳异常时,请求将被拦截。

          • WebDriver攻击:指遭遇WebDriver攻击时,请求将被拦截。

      2. 按需配置规则灰度与生效模式,具体信息,请参见规则灰度与生效模式说明。

    4. 在风险识别区域,可以单击新建,创建风险识别规则。基于WAF内建的手机号信誉数据库,实现针对黄牛等异常手机号的访问阻断,适用于手机号登录注册类场景。

      重要

      风险识别属于收费功能。具体计费规则如下:

      • 计费条件:仅在完成规则配置且实际流量命中时产生费用,其他情况不计费。

      • 计费单价:0.05元/次。

      • 结算方式:采用后付费模式,按天生成账单。

      • 账号提取:单击新增账号配置账号类型和账号位置。最多添加五个条件,条件之间为或关系。

        配置示例:若登录请求采用 GET 方法,且请求参数格式为 username=158***&password=***,请按以下方式进行配置:

        • 账号位置:选择 Query参数。

        • 参数名称:填写 username。

        配置完成后,WAF 即可准确提取该请求中的手机号信息,用于后续的安全匹配与检测。

      • 风险标签:单击新增标签进行配置,最多添加五个条件,条件之间为或关系。

        • 疑似小号:疑似第三方平台提供手机号,非个人用户。

        • 诈骗风险:疑似历史上存在欺诈行为。

        • 垃圾注册:疑似使用非法工具进行用户注册,用于后续的营销活动等。

        • 营销作弊:疑似使用非法工具参与营销活动,如批量注册领取优惠券等。

        • 黄牛账号:疑似使用非法工具参与抢票或其他秒杀类活动。

        风险等级默认均为高风险,支持配置高风险、中高风险、中风险,可根据业务需求自由选择。

      • 规则分类:将其分类为疑似BOT或恶意BOT。

      • 处置动作:具体信息,请参见处置动作说明。

      • 规则灰度与生效模式:具体信息,请参见规则灰度与生效模式说明。

    5. 在策略配置区域,系统基于阿里云经验沉淀的常见 Bot 特征库,将规则按类型划分。针对目标规则,可以执行以下操作:

      • 启用/禁用:单击状态列的image图标,开启或关闭规则。

      • 修改规则:单击编辑按钮,对规则进行自定义调整。设置处置动作、规则灰度与生效模式,具体信息,请参见处置动作说明与规则灰度与生效模式说明。

      • 修改分类:对于恶意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校验

      • 搜索引擎爬虫客户端

        规则名称

        误杀风险说明

        所有规则

        建议保持默认配置,放行请求

步骤三:选择生效范围

在生效对象区域,选中需要应用的防护对象或防护对象组,单击image图标,将该防护对象或防护对象组移入已选择区域内,单击确定。

步骤四:Web SDK集成

登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。在左侧导航栏,选择防护配置 > BOT管理 > Bot防护模板,进入Web防护 > WebSDK集成列表页签。

阿里云提供基于 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>节点之前以保证最先加载。

日常运维

  • 编辑模板

    单击目标模板操作列的编辑,在编辑模板面板中对模板进行编辑。

  • 删除模板

    单击目标模板操作列的删除,在删除对话框中确认删除信息后单击确认。

  • 复制模板

    单击目标模板操作列的复制,在复制对话框中确认复制信息后单击确认。

  • 开启或关闭模板

    新建的模板默认开启,单击目标模板模板开关列的image开关,可开启或关闭该模板。

  • 查看规则

    单击目标模板的image图标,查看该模板的规则信息,单击目标规则状态列的image开关,可开启或关闭对应规则。针对已启用的规则,可查看其命中趋势。若规则动作类型为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 头中携带该标识。

规则灰度与生效模式说明

  1. 在规则灰度区域,配置规则针对不同维度的对象的生效比例。开启规则灰度后,还需要设置维度和灰度比例。维度包括:IP、自定义Header、自定义参数、自定义Cookie、Session、网页端UMID。

    说明

    规则灰度根据配置的维度生效,而非对请求按比例随机生效规则。例如,当维度为IP且灰度比例为10%时,WAF将选择约10%的IP地址;被选中的IP地址,其所有请求均应用该规则,而非对所有请求按10%的比例随机应用。

  2. 在生效模式区域,选择规则的生效时间。

    • 永久生效(默认):防护模板开启时,规则永久生效。

    • 按时间段生效:防护规则仅在指定的一段时间内生效。

    • 按周期生效:防护规则仅在指定的时间周期内生效。

应用于生产环境

为避免影响正常业务,请勿在生产环境直接创建并启用模板。建议遵循以下流程进行部署。

  1. 配置白名单:在创建模板前,建议创建白名单规则,将可信IP加入白名单,防止可信请求被新规则误拦截。

  2. 灰度测试:模板创建完成后,可以使用以下三种方式,在部署到生产环境前进行观察测试。

    • 将规则应用于非生产环境进行测试。

    • 将处置动作设置为观察。

    • 开启规则灰度。

  3. 分析测试结果:运行一段时间后,观察安全报表与日志,查看命中规则的请求是否存在误报。

  4. 应用至生产环境:确认误报率在可接受范围内后,将处置动作调整为目标动作,并应用于生产环境。

  5. 持续监控与优化:持续关注安全报表与日志,根据业务变化和实际防护效果,动态调整和优化规则。

配额与限制

  • 自定义模式模板中的异常浏览器探针、设备伪造、操作行为异常、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 控制台重新配置。具体配置步骤请参见本文。