匹配条件说明

更新时间:2026-10-12 10:54:48

匹配条件说明

阅读时间: 约 12 分钟

本页是所有安全策略中“匹配条件”字段的完整参考。

通用说明

匹配条件用于精确定义规则的作用范围。多个条件之间可设置为:

  • AND(全部满足):请求必须同时满足所有条件
  • OR(任一满足):请求满足任意一个条件即生效

可用字段类型

路径(Path)

路径以 / 开头,不包含域名和参数。例如 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]+/

大小写与多值: 等于/不等于 区分大小写,其余运算符不区分。本字段支持多个输入值,但 正则匹配/正则不匹配 只能填单个值。

性能提示: 正则匹配比前缀/包含匹配消耗更多计算资源,非必要时优先使用前缀匹配。

请求方法(HTTP Method)

支持:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS

支持运算符:等于、不等于 | 支持多个输入值:是

客户端 IP(Client IP)

格式 示例
单个 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。确保您的源站正确配置了该请求头的传递。

请求头(HTTP Header)

请求头名称不区分大小写。

运算符 说明
等于 请求头值完全匹配
不等于 请求头值不等于指定内容
包含 请求头值中包含指定字符串
不包含 请求头值中不包含指定字符串
开头是 请求头值以指定内容开头
结尾是 请求头值以指定内容结尾
通配符匹配 使用通配符匹配请求头值
通配符不匹配 排除通配符命中的请求头值
正则匹配 使用正则匹配请求头值
正则不匹配 排除正则命中的请求头值
为空或不存在 请求未携带该请求头,或值为空

大小写与多值: 等于/不等于 区分大小写,其余运算符不区分。本字段支持多个输入值,但 正则匹配/正则不匹配 只能填单个值。

User-Agent

同请求头字段,针对 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 值包含 指定 Cookie 的值包含特定字符串

Referer

同请求头字段,针对 Referer 头的便捷配置,支持的运算符与请求头一致。

大小写与多值: 等于/不等于 区分大小写,其余运算符不区分。本字段支持多个输入值,但 正则匹配/正则不匹配 只能填单个值。

请求参数(Query String)

按请求 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 包含参数,路径不含参数。

示例 路径 URI
https://example.com/search?q=test&page=1 /search /search?q=test&page=1

支持运算符:等于、不等于、包含、不包含、开头是、结尾是、通配符匹配、通配符不匹配、正则匹配、正则不匹配

大小写与多值: 等于/不等于 区分大小写;包含、开头是、结尾是、通配符、正则运算符不区分大小写。本字段支持多个输入值,但 正则匹配/正则不匹配 只能填单个值。

来源国家/地区(Geo Location)

基于 IP 地理位置数据库判断请求来源地区,可精确到国家或省份(具体可选范围以控制台为准),用于 IP/区域封禁策略。

支持运算符:等于、不等于 | 支持多个输入值:是

状态码

匹配或排除特定的 HTTP 响应状态码。仅统计响应阶段的状态码。

支持运算符:等于、不等于 | 支持多个输入值:是

适用场景: 频率限制中,基于特定错误响应码(如 404、5xx)的频率限制;或自定义规则中根据响应码触发处置。

客户端分组

匹配或排除属于特定客户端分组的请求。客户端分组由平台根据请求特征自动划分。

支持运算符:等于、不等于 | 支持多个输入值:是

ASN(自治系统号)

基于 IP 所属的自治系统号进行匹配。适用于需要针对特定 ISP、云厂商或数据中心 IP 段进行批量处置的场景。

支持运算符:等于、不等于 | 支持多个输入值:是

典型用途: 拦截来自特定云服务商(如 AWS、Aliyun 等)的 IP 段,或放行来自特定企业专线 ASN 的流量。


特殊字段(高级用法)

字段 说明 典型用途
JA3 指纹 TLS 握手指纹,用于识别特定 TLS 客户端 识别使用特定工具的攻击者
请求体(Body) 匹配 POST 请求体内容 识别特定格式的恶意 Payload
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!