更新时间:2026-10-12 10:54:48
阅读时间: 约 12 分钟
本页是所有安全策略中“匹配条件”字段的完整参考。
匹配条件用于精确定义规则的作用范围。多个条件之间可设置为:
路径以 / 开头,不包含域名和参数。例如 www.test.com/common/ecs/channel?code=1&type=2 的路径为 /common/ecs/channel。
| 运算符 | 说明 | 示例 |
|---|---|---|
| 等于 | 完全匹配指定路径 | /login |
| 不等于 | 排除指定路径 | 非 /health |
| 包含 | 路径中包含指定字符串 | /api |
| 不包含 | 路径中不包含指定字符串 | 排除含 /static 的路径 |
| 开头是 | 路径前缀匹配 | /admin/ |
| 结尾是 | 路径后缀匹配 | .php |
| 通配符匹配 | 使用通配符匹配 | /api/*/detail |
| 通配符不匹配 | 排除通配符命中的路径 | 非 /api/*/detail |
| 正则匹配 | 使用正则表达式匹配 | ^/api/v[0-9]+/ |
| 正则不匹配 | 排除正则命中的路径 | 非 ^/api/v[0-9]+/ |
大小写与多值:
等于/不等于区分大小写,其余运算符不区分。本字段支持多个输入值,但正则匹配/正则不匹配只能填单个值。
性能提示: 正则匹配比前缀/包含匹配消耗更多计算资源,非必要时优先使用前缀匹配。
支持:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
支持运算符:等于、不等于 | 支持多个输入值:是
| 格式 | 示例 |
|---|---|
| 单个 IP | 1.2.3.4 |
| CIDR 段 | 1.2.3.0/24 |
| IP 范围 | 1.2.3.1-1.2.3.100 |
支持 IPv4 及 IPv6 | 支持运算符:等于、不等于 | 支持多个输入值:是
注意: 若请求经过代理或负载均衡转发,“客户端 IP”取自
X-Forwarded-For头中的第一个 IP。确保您的源站正确配置了该请求头的传递。
请求头名称不区分大小写。
| 运算符 | 说明 |
|---|---|
| 等于 | 请求头值完全匹配 |
| 不等于 | 请求头值不等于指定内容 |
| 包含 | 请求头值中包含指定字符串 |
| 不包含 | 请求头值中不包含指定字符串 |
| 开头是 | 请求头值以指定内容开头 |
| 结尾是 | 请求头值以指定内容结尾 |
| 通配符匹配 | 使用通配符匹配请求头值 |
| 通配符不匹配 | 排除通配符命中的请求头值 |
| 正则匹配 | 使用正则匹配请求头值 |
| 正则不匹配 | 排除正则命中的请求头值 |
| 为空或不存在 | 请求未携带该请求头,或值为空 |
大小写与多值:
等于/不等于区分大小写,其余运算符不区分。本字段支持多个输入值,但正则匹配/正则不匹配只能填单个值。
同请求头字段,针对 User-Agent 头的便捷配置,支持的运算符与请求头一致。
| 运算符 | 示例 |
|---|---|
| 等于 | Mozilla/5.0 ... |
| 不等于 | 非 Mozilla/5.0 ... |
| 包含 | Googlebot |
| 不包含 | 排除含 Googlebot 的 UA |
| 开头是 | Mozilla/ |
| 结尾是 | Safari/537.36 |
| 通配符匹配 | Mozilla/* |
| 通配符不匹配 | 非 Mozilla/* |
| 正则匹配 | ^python-requests/ |
| 正则不匹配 | 非 ^python-requests/ |
| 为空或不存在 | — |
大小写与多值:
等于/不等于区分大小写,其余运算符不区分。本字段支持多个输入值,但正则匹配/正则不匹配只能填单个值。
| 运算符 | 说明 |
|---|---|
| Cookie 名称存在 | 请求携带了指定名称的 Cookie |
| Cookie 值等于 | 指定 Cookie 的值完全匹配 |
| Cookie 值包含 | 指定 Cookie 的值包含特定字符串 |
同请求头字段,针对 Referer 头的便捷配置,支持的运算符与请求头一致。
大小写与多值:
等于/不等于区分大小写,其余运算符不区分。本字段支持多个输入值,但正则匹配/正则不匹配只能填单个值。
按请求 URL 中携带的 Query String 整体进行匹配,例如 code=1&type=2。
| 运算符 | 说明 | 示例 |
|---|---|---|
| 等于 | Query String 完全匹配 | code=1&type=2 |
| 不等于 | 排除指定 Query String | 非 code=1&type=2 |
| 包含 | Query String 中包含指定字符串 | code= |
| 不包含 | Query String 中不包含指定字符串 | 排除含 debug= 的请求 |
| 开头是 | Query String 以指定内容开头 | code=1 |
| 结尾是 | Query String 以指定内容结尾 | type=2 |
| 通配符匹配 | 使用通配符匹配 | code=*&type=2 |
| 通配符不匹配 | 排除通配符命中的 Query String | 非 code=*&type=2 |
| 正则匹配 | 使用正则匹配 | ^code=[0-9]+ |
| 正则不匹配 | 排除正则命中的 Query String | 非 ^code=[0-9]+ |
| 为空或不存在 | 请求未携带 Query String | — |
大小写与多值: 本字段所有运算符均区分大小写,配置时需与业务实际传参的大小写完全一致。支持多个输入值,但
正则匹配/正则不匹配只能填单个值。
适用场景: 当 WAF 对带有特定查询参数的合法请求产生误报时,使用参数条件精确定义例外范围。
URI 与路径的区别:URI 包含参数,路径不含参数。
| 示例 | 路径 | URI |
|---|---|---|
https://example.com/search?q=test&page=1 |
/search |
/search?q=test&page=1 |
支持运算符:等于、不等于、包含、不包含、开头是、结尾是、通配符匹配、通配符不匹配、正则匹配、正则不匹配
大小写与多值:
等于/不等于区分大小写;包含、开头是、结尾是、通配符、正则运算符不区分大小写。本字段支持多个输入值,但正则匹配/正则不匹配只能填单个值。
基于 IP 地理位置数据库判断请求来源地区,可精确到国家或省份(具体可选范围以控制台为准),用于 IP/区域封禁策略。
支持运算符:等于、不等于 | 支持多个输入值:是
匹配或排除特定的 HTTP 响应状态码。仅统计响应阶段的状态码。
支持运算符:等于、不等于 | 支持多个输入值:是
适用场景: 频率限制中,基于特定错误响应码(如 404、5xx)的频率限制;或自定义规则中根据响应码触发处置。
匹配或排除属于特定客户端分组的请求。客户端分组由平台根据请求特征自动划分。
支持运算符:等于、不等于 | 支持多个输入值:是
基于 IP 所属的自治系统号进行匹配。适用于需要针对特定 ISP、云厂商或数据中心 IP 段进行批量处置的场景。
支持运算符:等于、不等于 | 支持多个输入值:是
典型用途: 拦截来自特定云服务商(如 AWS、Aliyun 等)的 IP 段,或放行来自特定企业专线 ASN 的流量。
| 字段 | 说明 | 典型用途 |
|---|---|---|
| JA3 指纹 | TLS 握手指纹,用于识别特定 TLS 客户端 | 识别使用特定工具的攻击者 |
| 请求体(Body) | 匹配 POST 请求体内容 | 识别特定格式的恶意 Payload |