本文列举了Web应用防火墙(Web Application Firewall,简称WAF)3.0版本防护配置过程中,可能遇见的问题和解决方案。
WAF控制台无法找到指定的防护规则ID原因?
当无法在WAF控制台找到指定规则ID时,请根据规则类型,逐条进行检查:
内置Web核心防护规则查找
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择。
定位并展开目标防护模板,单击操作列的引擎配置。

在弹出的引擎配置页面进行搜索。

自定义规则查找
针对Web 核心防护下的其他防护模块(如自定义规则、CC防护、扫描防护等),其自定义规则的查找步骤如下:
在左侧导航栏,选择。
在下图位置进行搜索。

白名单规则查找
在左侧导航栏,选择。
在下图位置进行搜索。

Bot管理规则查找
Web防护内置规则
在左侧导航栏,选择。
在下图位置进行搜索。

App防护内置规则
在左侧导航栏,选择。
在下图位置进行搜索。

高级自定义规则
在左侧导航栏,选择。
在下图位置进行搜索。

防护规则被删除
如果规则在上述位置都找不到,可能原因是规则被删除,可以使用操作审计,查询是否有事件名称为DeleteDefenseRule或DeleteDefenseTemplate的事件,具体步骤,请参见通过操作审计控制台查询事件。
WAF日志中acl_action:block是否实际阻断请求?
acl_action:block不能直接说明请求被阻断,如果acl_test为true,表示观察模式,即仅记录日志,不触发拦截等防护动作。请求是否被实际阻断需要查询final_action字段,final_action:block才表示阻断。
配置自定义规则匹配字段Body Parameter后为何不生效?
可能原因是填写的匹配内容长度过短,使用Body Parameter字段时请确保匹配内容长度大于四个字符,否则流量无法被检测。
如何让某个域名的请求不经过CC防护检测?
如果您需要让某个域名的请求不经过CC防护检测,您可以参考以下任意方案进行配置。
通过创建白名单规则
(可选)将不需要经过CC防护检测的域名添加为防护对象。具体操作,请参见手动添加防护对象。只有ALB实例中的域名需要执行该操作。
创建白名单规则。白名单规则的不检测模块为CC防护,规则模板的生效对象为不需要经过CC防护检测的域名。具体操作,请参见白名单。
完成以上配置后,被添加到白名单规则中的域名的请求不经过CC防护检测。
通过创建CC防护规则
域名不属于ALB实例
创建CC防护规则。规则模板的生效对象为不需要经过CC防护检测的域名。具体操作,请参见设置CC防护规则防御CC攻击。
关闭该CC防护规则的模板开关。
完成以上配置后,被添加到已关闭CC防护规则中的域名的请求不经过CC防护检测。
域名属于ALB实例
将ALB实例中的所有域名添加为防护对象。具体操作,请参见手动添加防护对象。
创建两个CC防护规则。具体操作,请参见设置CC防护规则防御CC攻击。
防护规则配置要求如下:
防护规则A:根据业务需要配置防护模式为正常模式或严格模式,生效对象为ALB实例中需要经过CC防护检测的域名。
防护规则B:生效对象为不需要经过CC防护检测的域名和ALB实例。
开启CC防护规则A的模板开关,关闭CC防护规则B的模板开关。
完成以上配置后,已添加到防护规则A的域名的请求经过CC防护检测,已添加到防护规则B的域名的请求不经过CC防护检测。
为什么URL匹配字段包含双斜杠(//)的自定义防护策略规则不会生效?
由于WAF的规则引擎在处理URL匹配字段时会进行标准化处理,默认将连续的正斜杠(/)进行压缩,因此无法正确匹配包含双斜杠(//)URL的自定义防护策略规则。
如果您需要对包含双斜杠(//)的URL设置ACL访问控制,您可以直接设置该URL对应的单斜杠路径作为匹配条件。例如,如果需要将//api/sms/request作为URL匹配字段的条件值,您只需在匹配内容中填写/api/sms/request,WAF即可针对包含该内容的请求进行访问控制。
如何通过请求 ID(Request ID)排查 WAF 拦截原因?
当请求被 WAF拦截时,系统将在响应中返回唯一的请求 ID(Request ID)。请利用该 ID 在安全报表或日志中检索详细信息,以定位拦截原因。
获取请求 ID:请求被拦截后,拦截页面将默认显示请求 ID。请复制该 ID 以供后续查询使用。

进入 WAF 控制台查询:登录Web应用防火墙3.0控制台,在左侧导航栏,选择。设定查询时间范围,在“请输入traceid”搜索框中粘贴请求 ID 进行检索。
说明若防护对象已开启日志投递功能,也可在 页面进行查询。
分析拦截原因:在安全报表页面下方,查看该请求命中的防护模块及命中规则。若确认该请求为正常业务流量,请在日志列表的操作列单击误报屏蔽,将其加入白名单。更多信息,请参见白名单。
按量付费版WAF如何关闭API安全功能?
对于按量付费版WAF实例,若不再需要使用API安全功能,请按以下步骤进行关闭。
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择。
进入页签。
关闭所有防护对象与防护对象组的基础检测开关,操作完成后,API安全相关的历史数据将被清除且无法查看。
阿里云 WAF 是否默认注入 CORS 响应头或动态回显 Origin 请求头?
WAF 不会更改请求的 CORS 头,也没有相关配置项用于自动注入 CORS 响应头或动态回显 Origin。CORS 策略应由源站服务器或应用程序自行配置和管理。
WAF 返回 413 Request Entity Too Large 错误的原因是什么?
原因:上传的文件大小超过了 WAF 设定的单次请求大小限制(当前限制为 2 GB)。
处理方法:
调整上传文件的大小,确保单次请求低于 2 GB。
升级WAF至旗舰版,支持最大10GB文件,具体信息,请参见控制上传文件大小。
收到WAF 拦截告警是否意味着业务受到了影响?
收到 WAF 拦截告警表明安全防护机制正在生效,并不直接意味着业务受损。但在特定场景下,需排查是否存在误拦截或防护失效风险。
告警含义
WAF 拦截告警表示系统已成功识别并阻断命中安全规则的恶意请求。此类请求在到达源站前已被清洗,不会消耗源站资源或造成实际攻击伤害,属于防护机制正常工作的表现。
需介入排查的场景
误报:若合法用户访问(如后台登录、API 调用)被拦截,说明规则配置过严导致误伤。此时业务可用性已受影响,需调整防护规则或将相关特征加入白名单。
大规模 CC 攻击:遭遇高频 CC 攻击时,尽管 WAF 执行了拦截,但仍可能存在漏拦情况。此外,攻击流量过大可能触发黑洞机制,导致 WAF 服务不可用。具体防御策略请参见设置CC防护规则防御CC攻击。
WAF 默认防护策略为何不拦截 .py/.sh 等脚本文件上传?
WAF 默认防护策略主要针对高频 Web 攻击(如 SQL 注入、XSS)及常见 WebShell(JSP、PHP、ASP)。
.py、.sh、.cmd、.bat 等脚本文件扩展名在合法业务中常被用于后台任务或批处理。为避免误拦截正常业务请求,默认策略未将此类扩展名纳入全局拦截范围。
若需拦截,建议通过自定义规则,匹配上传接口路径及文件名后缀进行精准管控。
如何配置仅拦截境外 IP 但放行特定搜索引擎爬虫?
可以通过组合配置实现:
开启设置区域封禁规则封禁特定区域请求功能,选择拦截所有中国境外区域。
创建白名单,匹配条件设置为 User-Agent 包含特定爬虫标识(如 Googlebot、bingbot),不检测模块为区域封禁。
前缀匹配与正则匹配有什么区别?如何选择?
匹配能力:前缀匹配属于简单模式,仅支持固定字符串的匹配;正则匹配属于高级规则,支持复杂的模式匹配。
性能表现:前缀匹配执行效率高;正则匹配由于底层引擎的复杂性,在使用按量付费版时消耗的费用略高。
规则调优建议:若当前规则未按预期拦截,需检查是否因匹配方式不当导致。例如,对于 URI 路径,可尝试使用包含多值之一或正则匹配来替代单一的前缀/后缀匹配,以提高命中率。在使用正则匹配时,务必注意正则表达式的写法规范,避免复杂的嵌套。
配置白名单后是否立即生效?是否需要等待封禁时间结束?
添加白名单规则后即时生效,无需等待原有的封禁时间结束。
若配置后仍被拦截,请检查以下内容:
模板和规则开关是否已开启。
生效对象设置是否正确。
匹配条件是否配置准确。
确认 WAF 前是否存在 CDN、高防等七层代理。若存在,需在接入资产时正确配置WAF前是否有七层代理(高防/CDN等)选项,否则将导致 WAF 无法获取真实的客户端 IP。
WAF 指纹规则(JA3/JA4/HTTP2)的匹配原理是什么?为何非 IP 维度也能命中?
指纹规则是基于客户端浏览器或工具的特征生成的哈希值进行匹配,而非基于 IP 地址。具体包括:
JA3 指纹:对 TLS 握手关键参数(版本、密码套件等)进行 MD5 哈希生成。
JA4 指纹:引入更多算法(浏览器版本、OS 等)以减少重复性。
HTTP/2 指纹:根据 HTTP/2 客户端原始指纹利用 MD5 算法生成。
只要请求带有匹配的指纹特征,无论 IP 归属地如何,均会触发规则。


