You need to enable JavaScript to run this app.
导航
全局防护规则优先级
最近更新时间:2025.10.09 11:59:56首次发布时间:2025.09.05 12:25:08
复制全文
我的收藏
有用
有用
无用
无用

本文主要介绍火山引擎 Web 应用防火墙的全局规则匹配优先级机制,通过基础原理、示例说明和最佳实践的内容,帮助你深入理解 WAF 工作原理,掌握规则配置方法,提升安全防护效果。当你需要配置多种可能冲突的防护规则,或在排查特定请求被意外拦截/放行的原因时,理解规则的匹配优先级至关重要。

基础逻辑

WAF 采用多层优先级防护体系,通过预定义的规则匹配顺序,对 HTTP 请求进行逐层检测和处理。

匹配原则

  • 优先级顺序:WAF 根据防护规则的优先级高低依次执行检测,优先级高的规则将优先匹配和执行。
  • 白名单特权:允许访问名单(白名单)具有最高优先级。一旦请求命中白名单规则,系统将直接放行该请求,不再执行其他检测。
  • 短路处理:系统根据规则动作类型决定是否继续执行后续检测。
    • 命中终止类动作(限速、拦截、JS 挑战、人机验证、工作量证明)时,将触发短路机制,终止后续检测。
    • 命中非终止类动作(放行、观察)时,请求将继续流转至低优先级规则进行检测。
  • 规则内匹配顺序:单个规则内的多个匹配条件按域名 > 路径 > 高级条件(包括请求方法、请求协议、User-Agent、Referer 等)的优先级顺序执行。

策略分类

火山引擎 WAF 将防护策略分为以下几类,每类策略的配置复杂程度和对性能的影响存在差别:

策略类型

主要功能

配置复杂度

性能影响

访问控制

IP 白名单/黑名单管理

简单

地理位置访问控制

分地域管理访问源

简单

漏洞防护

Web 漏洞检测与防护

中等

中等

API 防护

API 接口安全管控

简单

中等

Bot 管理

自动化工具识别与防护

复杂

CC 防护

频率限制与 7 层 DDoS 防护

中等

中等

敏感信息泄漏

响应内容过滤

中等

网页防篡改

页面缓存保护

简单

匹配条件类型

符号说明:✅ 表示支持配置该类型的匹配条件,- 表示不支持。

一级策略

二级规则

防护域名

访问路径

高级条件

频次阈值

访问控制

白名单

访问控制

黑名单

地理位置访问控制

自定义拦截响应

CC 防护

自定义

漏洞防护

托管漏洞防护规则

漏洞防护

请求加白

漏洞防护

字段加白

漏洞防护

目录遍历

漏洞防护

高频扫描

API 防护

默认路由(未登记 API 执行动作)

API 防护

手动添加

API 防护

自动发现

Bot 管理

Bot 自定义分类

Bot 管理

Bot 托管分类

Bot 管理

Bot 频率限制

Bot 管理

Bot 统计防护

Bot 管理

Bot 动态令牌

Bot 管理

行为地图

防敏感信息泄漏

网页防篡改

优先级顺序

按序依次执行对应规则的匹配,若命中且执行动作为终止类,则终止检查,按设定动作处置对应请求。

说明

以下策略不检测请求内容,因此暂不参与优先级排序:

  • 自定义拦截响应(配置自定义的响应码和响应内容返回给客户端,用于在触发拦截规则时提供特定的反馈信息)。
  • 防敏感信息泄露(识别响应中的敏感信息,防止隐私信息泄露)。
  • 网页防篡改策略(返回缓存页面以防止防护网站被非法篡改,确保网页的完整性和安全性)。

优先级

一级策略

二级规则

1

访问控制

允许访问名单

2

访问控制

禁止访问名单

3

CC 防护

自定义规则

4

CC 防护

智能防护(仅BP)

5

地理位置访问控制

6

Bot 管理

自定义分类

7

Bot 管理

托管分类

8

Bot 管理

频率限制

9

Bot 管理

统计防护

10

Bot 管理

行为地图

11

Bot 管理

动态令牌

12

API 防护

未登记 API 执行动作

13

API 防护

手动添加

14

API 防护

自动发现

15

漏洞防护

请求加白

16

漏洞防护

字段加白

17

漏洞防护

漏洞托管规则

18

漏洞防护

高频扫描

19

漏洞防护

目录遍历

示例说明

下文以某条同时满足多个防护规则的请求为例,为您详细介绍对应的规则匹配逻辑和顺序。

防护规则详情

假设在 WAF 控制台配置了如下防护规则:

优先级

规则类型

规则内容

执行动作

1

访问控制-允许访问名单

  • 规则名称:内网 IP 名单
  • 防护域名:example.com
  • 访问源:192.168.1.100
  • 访问路径:/admin.html

放行

2

访问控制-禁止访问名单

  • 规则名称:禁止访问 IP 名单
  • 防护域名:example.com
  • 访问源:185.220.1.1
  • 访问路径:/admin.html

观察

16

漏洞防护-字段加白

  • 规则名称:加白 refer 字段
  • 防护域名:example.com
  • 加白区域:请求Header
  • 加白字段:Referer

加白字段跳过漏洞检查

17

漏洞防护-托管防护规则

  • 防护等级:正常

拦截

HTTP 请求

为了全面演示 WAF 规则匹配优先级机制,我们构造一个包含多种攻击特征的真实 HTTP 请求:

POST /api/user/login HTTP/1.1
Host: example.com
X-Forwarded-For: 185.220.1.1
X-Real-IP: 185.220.1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Content-Length: 59
Cookie: sessionid=abc123
Referer: http://malicious-scanner.com/scan
Connection: keep-alive

username=admin' OR '1'='1'--&password=123456&remember=true

攻击特征分析

攻击类型

具体特征

位置

对应检测规则

恶意 IP

185.220.1.1

X-Real-IP

访问控制-禁止访问名单

可疑来源

malicious-scanner.com

Referer

漏洞防护-字段加白

SQL 注入

username=admin' OR '1'='1'--&password=123456&remember=true

POST Body

漏洞防护-漏洞托管

实际规则匹配过程

当此恶意请求到达 WAF 时,按照优先级顺序执行以下检测:
Image

顺序

规则

检测内容

规则配置

匹配结果

下一步

1

允许访问名单

请求源 185.220.1.1 是否在允许访问名单中

192.168.1.100

不匹配

继续检测

2

禁止访问名单

请求源 185.220.1.1 是否在禁止访问名单中

185.220.1.1

匹配

执行动作非终止类(观察),继续检测

3

漏洞防护字段加白规则

请求 Header 中的 referer 字段

将请求 Header 中的 referer 字段加白

匹配

Referer 字段内容豁免,继续检测

4

漏洞防护托管规则

请求内容是否存在漏洞攻击风险

开启漏洞防护托管规则并设置防护等级为正常

匹配(
username=admin' OR '1'='1'--&password=123456&remember=true存在 SQL 注入风险)

执行动作为终止类(拦截),停止后续检查

最佳实践

以下是一些在 WAF 规则配置和故障排查方面的实践建议,帮助您有效利用 WAF 规则匹配优先级机制,提升防护效果和系统性能。

规则配置建议

配置思路

典型场景

注意事项

信任优先

内网IP、监控接口、特殊字段

避免误拦截关键业务

访问控制

API 管控、恶意 IP 拦截

平衡安全性和可用性

行为检测

扫描防护、频率限制

设置合理阈值和时间窗口

智能防护

Bot 检测、行为分析

关注误报率和用户体验

内容检测

漏洞防护、信息泄露

定期更新规则库

性能优化策略

WAF 性能优化是确保业务可用性的关键,以下是具体的优化策略:

  • 白名单前置:可信流量快速放行
  • 精确匹配:避免过度宽泛的匹配条件
  • 合理阈值:频率限制和统计防护设置适当阈值
  • 规则精简:定期清理无效和重复规则
  • 先简后繁:复杂条件后置,简单条件前置

故障排查方法

当 WAF 出现异常拦截或放行时,可参考以下流程图进行故障排查:

排查流程图

Image

常见问题及解决方案

问题类型

症状描述

可能原因

解决方案

误拦截

正常请求被拦截

规则过于严格、IP误判

添加白名单、调整规则参数

漏检

攻击请求未被拦截

规则覆盖不全、优先级问题

完善规则库、调整优先级

业务连续性问题

响应延迟增加

规则过多、匹配复杂

优化规则、启用短路机制