Skip to content

WAF 匹配字段说明

本章节详细说明了 WAF 规则引擎支持的匹配字段。在配置白名单自定义规则速率限制时,正确理解这些字段的定义与取值范围至关重要。


基础网络与协议字段

此类字段基于 TCP/IP 协议层及 HTTP 协议基础属性,通常用于从网络层面筛选流量。

匹配字段字段说明支持运算符格式/示例配置说明与最佳实践
IP发起请求的客户端源 IP 地址。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
限速: 次数
192.168.1.1
10.0.0.0/24
• 支持 IPv4 与 IPv6。
注意:如果 WAF 部署在负载均衡或 CDN 之后,此字段可能显示为中间件 IP。如需获取真实用户 IP,请参考 X-Forwarded-For
Country基于源 IP 解析出的所属国家或地区代码。比较: 等于、不等于、包含以下各项、不包含以下各项CN (中国)
US (美国)
• 遵循 ISO 3166-1 alpha-2 标准。
• 常用于“地域封禁”或“仅允许特定国家访问”。
• 无法判断使用 VPN 或代理绕过地理位置的用户。
Server Port客户端请求的目标服务器端口。比较: 等于、不等于、包含以下各项、不包含以下各项
数值: 大于、小于、大于等于、小于等于
80, 443, 8080• 用于区分同一 IP 上运行的不同服务。
• 建议显式限制允许的端口(如仅允许 80/443),防止非标端口绕过检测。
HTTP MethodHTTP 请求动作。比较: 等于、不等于、包含以下各项、不包含以下各项GET, POST, PUT, DELETE• 建议对静态页面仅开放 GET
• 对未使用的危险方法(如 TRACE, CONNECT)建议直接阻断。
HTTP Version请求使用的 HTTP 协议版本。比较: 等于、不等于、包含以下各项、不包含以下各项HTTP/1.0, HTTP/1.1, HTTP/2HTTP/1.0 常见于陈旧的扫描脚本或 DDoS 工具,建议在现代应用中进行限制。

路径与参数字段

此类字段用于识别具体的业务接口、文件路径及传递的参数,是防御 Web 漏洞(如 SQL 注入、XSS)的核心区域。

匹配字段字段说明支持运算符格式/示例配置说明与最佳实践
URI完整的统一资源标识符,通常包含路径和查询字符串。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
/login.php?id=1• 包含 ? 及其后面的内容。
• 适用于需要同时匹配路径和特定参数组合的场景。
URI Path仅包含资源路径,不包含查询字符串(参数)。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
/admin/login.php
/api/v1/user
最常用的路径匹配字段
• 建议配合“忽略大小写”和“URL 解码”使用,以防止 /Admin%61dmin 绕过。
Query StringURL 中 ? 之后的所有内容。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
id=1&action=view• 将整个参数串视为一个字符串进行匹配。
• 适用于检测通过 URL 传递的通用攻击特征(如 script 标签)。
Query String Parameter比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
空值: 为空、不为空
URL 中特定名称的参数值。针对参数 id 匹配值 1• 比 Query String 更精准。
• 例如:仅检查 page 参数是否包含数字,或仅检查 search 参数是否包含 SQL 注入特征。
Filename从 URI 路径中解析出的文件名部分。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
upload.php, image.jpg• 用于文件上传防御或敏感文件访问控制。
• 注意:攻击者可能利用 %00 截断或特殊编码混淆文件名。
File Extension文件的后缀名。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
php, jsp, exe• 常用于黑名单过滤:禁止访问 .bak, .sql, .config 等备份/配置文件,或禁止上传 .jsp, .asp 等脚本文件。

HTTP 头部包含了客户端环境、身份凭证等元数据,常被用于身份伪造或特定漏洞利用。

匹配字段字段说明支持运算符格式/示例配置说明与最佳实践
Header任意指定的 HTTP 请求头的值。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
需指定 Key,如 Authorization• 可用于检测缺失特定安全头(如 Token)的非法请求。
• 针对 Log4j 等漏洞,需全量扫描 Header 值。
Host请求头中的域名信息。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
www.example.com• 用于多域名环境下的精确匹配。
• 建议阻断 Host 为 IP 地址(如 1.1.1.1)的请求,这通常是扫描器的特征。
User-Agent客户端浏览器、操作系统或工具的标识字符串。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
Mozilla/5.0...
Python-urllib/3.0
• 可用于阻断明显的扫描工具(如 curl, wget, sqlmap)。
• 注意:该字段极易伪造,不可作为唯一的信任依据。
Referer请求的来源页面地址。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
https://google.com• 常用于防盗链(检查图片引用来源)或辅助防御 CSRF。
• 注意:部分隐私保护设置可能导致此字段为空。
X-Forwarded-For代理服务器添加的标准头部,用于记录真实客户端 IP 链。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
203.0.113.195, 10.0.0.1重要:当 WAF 位于 CDN/LB 后时,需解析此字段获取真实 IP。
• 仅应信任受信任代理添加的最右侧 IP。
Content-Type请求体的数据媒体类型。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
application/json
multipart/form-data
• 建议强制 API 接口仅接受特定的 Content-Type,防止解析器绕过攻击。
Cookie完整的 Cookie 字符串。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
session_id=xy; uid=123• 将所有 Cookie 视为一段文本进行匹配。
Cookie Name特定 Cookie 键名的值。比较: 等于、不等于、包含以下各项、不包含以下各项
字符串: 包含、不包含、前缀是、前缀不是、后缀是、后缀不是
正则: 正则匹配、正则不匹配
长度: 长度等于、长度不等于、长度大于、长度小于、长度大于等于、长度小于等于
针对 session_id 匹配值推荐:相比全量 Cookie 匹配,指定 Cookie Name 可以减少误报(例如排除经常变化的随机 CSRF Token 字段)。

响应字段

此类字段仅适用于速率限制场景,依据服务器的反馈进行动态阻断。

匹配字段字段说明支持运算符格式/示例配置说明与最佳实践
Status Code服务器返回的 HTTP 状态码。比较: 等于、不等于、包含以下各项、不包含以下各项
数值: 大于、小于、大于等于、小于等于
200, 404, 500404 陷阱:如果某 IP 短时间内产生大量 404 错误,极可能是目录扫描攻击,建议触发限速或封禁。
暴力破解检测:短时间内大量 401403 可能意味着密码暴破。