全部产品
Search
文档中心

Web 应用防火墙:匹配条件说明

更新时间:Jun 22, 2026

在设置白名单规则、自定义规则或Bot管理规则时,需要在规则中配置匹配条件,定义要匹配的请求特征。本文介绍了规则匹配条件支持使用的字段及其释义。

什么是匹配条件

匹配条件指需要Web 应用防火墙 WAF(Web Application Firewall)检测的请求特征。您在设置白名单规则自定义规则Bot管理时,通过定义匹配条件,指定要检测的请求特征。如果某个请求满足规则中设置的匹配条件,则该请求命中对应规则;WAF会依据规则中设置的规则动作,对请求执行相应处置(例如,放行、拦截、校验等)。匹配条件

匹配条件匹配字段逻辑符匹配内容组成。配置示例如下:

匹配字段

逻辑符

匹配内容

说明

URI Path

包含

/login.php

当请求的路径包含/login.php时,则请求命中该规则。

IP

属于

192.1.XX.XX

当客户端IP为192.1.XX.XX时,则请求命中该规则。

支持的匹配字段

下表列出了匹配条件中支持的字段及其相关规则。

  1. 高级规则定义与计费

    • 定义:满足以下任一条件的规则即为高级规则:

      • 匹配字段为 Body 或 Body Parameter

      • 逻辑符为 正则匹配 或 正则不匹配

    • 按量付费版 WAF:高级规则与基础规则的计费标准不同,具体单价请参见计费说明

    • 包年包月版 WAF:仅企业版及以上版本支持高级规则,各版本功能差异请参见版本说明

  2. 匹配机制

    • 大小写敏感性:除特殊说明外,所有匹配字段的匹配内容均不区分大小写。

    • 编码处理:对于包含 URL 编码、HTML 编码或 Unicode 编码等常见编码的请求内容,系统将自动解码后再进行匹配。

匹配字段

说明

支持的逻辑符

URI

请求的统一资源标识符URI(Uniform Resource Identifier),表示被请求的资源的路径。一般来说,URI=URI Path + Query String

对应匹配内容以/开头,不包含域名,例如,/login.php

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

IP

请求的来源IP,即发起请求的客户端的IP地址。

匹配内容填写要求如下:

  • 支持使用IPv4地址(例如,1.XX.XX.1)、IPv6地址(例如,2001:db8:ffff:ffff:ffff:ffff:ffff:ffff)。

  • 支持使用IP网段格式(例如,1.XX.XX.1/16)。

  • 每输入一个IP地址,按回车进行确认。

  • 最多支持设置100个IP地址。

属于、不属于

说明

单个防护规则最多可填写100个IP或IP网段。例如,某条防护规则中包含两条匹配字段为IP的匹配条件,则两条匹配条件中的IP或IP网段总数不能超过100个。多个IP或IP网段之间使用英文逗号(,)分隔。

Referer

请求的来源网址,即该请求从哪个页面跳转产生。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

User-Agent

发起请求的客户端的浏览器标识、渲染引擎标识和版本信息等浏览器相关信息。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Query String

请求中的查询字符串,具体指URL中问号(?)后面的部分。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Cookie

请求中的Cookie信息。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 长度等于、长度大于、长度小于

  • 正则匹配、正则不匹配

Content-Type

请求指定的响应HTTP内容类型,即多用途互联网邮件扩展类型MIME(Multipurpose Internet Mail Extensions)类型信息。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 长度等于、长度大于、长度小于

  • 正则匹配、正则不匹配

Content-Length

请求内容所包含的字节数。取值范围:0~2147483648。

  • 等于、值大于、值小于

X-Forwarded-For

请求的客户端真实IP。X-Forwarded-For(XFF)用来识别通过HTTP代理或负载均衡方式转发的请求的客户端最原始的IP地址的HTTP请求头字段,只有通过HTTP代理或者负载均衡服务器转发的请求才会包含该项。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含

  • 不存在

  • 长度等于、长度大于、长度小于

Body

请求的内容信息。

  • 等于

  • 包含

  • 不存在

  • 前缀匹配、后缀匹配

  • 正则匹配

Http-Method

请求的方法,包括GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH。

  • 等于、不等于、等于多值之一、不等于任一值

Header

请求的头部信息。支持自定义的头部字段。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 长度等于、长度大于、长度小于

  • 正则匹配、正则不匹配

URI Path

请求的URI路径。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Query String Parameter

请求参数的参数名。请求参数指请求的URL中问号(?)后面的部分。例如,www.aliyundoc.com/request_path?param1=a&param2=b中,param1param2都是请求参数。

说明

Query String Parameter的自定义Parameter大小写敏感。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

Server-Port

服务器端口。

  • 等于、不等于、等于多值之一、不等于任一值

File Extension

被请求文件的扩展名,例如,.png、.php。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Filename

请求路径末尾的文件名。例如,在/abc/index.php中,index.php表示文件名。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Host

被请求的域名。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配、正则不匹配

Cookie Name

Cookie的键名称。例如,在acw_tc:111这个Cookie中,acw_tc是Cookie的键名称。

说明

Cookie Name的自定义Cookie-Exact大小写敏感。

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配

Body Parameter

  • 基本规则

    • 该字段用于指定请求体(Body)中的参数名称,且匹配时区分大小写。

    • 匹配内容的长度必须大于 4 个字符,否则系统将无法检测对应流量。

  • 格式规范

    • 常规参数:直接填写参数键名。例如,请求体为 a=1&b=2 时,应填写 a 或 b

    • 嵌套 JSON:采用 父级Key.子级Key 的点分层级格式。例如,若需匹配 {"userInfo": {"userId": "12345"}} 中的值,应填写 userInfo.userId

  • 等于、不等于、等于多值之一、不等于任一值

  • 包含、不包含、包含多值之一、不包含任一值

  • 存在、不存在

  • 内容为空

  • 长度等于、长度大于、长度小于

  • 前缀匹配、后缀匹配

  • 正则匹配

Client-ID

客户端(如浏览器或应用程序)标识,通过User Agent信息和流量指纹等特征来识别HTTP请求来源于哪种客户端。

说明

BOT管理 > 高级自定义规则模块支持。

  • 包含、不包含

  • 等于、不等于

  • 等于多值之一

JA3 Fingerprint

通过将TLS握手过程中的关键参数(包括TLS版本、密码套件、压缩算法和TLS扩展等信息)进行MD5哈希处理,生成一个字符串用来表示客户端的TLS配置,该字符串即JA3指纹。

JA3指纹可以用于识别和区分不同类型的TLS客户端,例如Web浏览器、移动应用程序、恶意软件等。

说明

BOT管理 > 高级自定义规则模块支持。

  • 等于、不等于

  • 等于多值之一

JA4 Fingerprint

JA4指纹通过引入更多的上下文信息和算法,例如浏览器的版本、操作系统等,减少了JA3指纹可能导致的重复性问题。

JA4指纹能够更准确地鉴别出真实的用户与伪装者,降低误识率。

说明

BOT管理 > 高级自定义规则模块支持。

  • 等于、不等于

  • 等于多值之一

HTTP/2 Fingerprint

根据HTTP2客户端的原始指纹,利用MD5算法处理后生成的HTTP2.0指纹。用来分析和识别不同的客户端,实现更安全和高效的通信。

说明

BOT管理 > 高级自定义规则模块支持。

  • 等于、不等于

  • 等于多值之一

IDC

基于源IP归属数据识别流量来源,云服务器成本较低,黑灰产易利用进行攻击。

说明

BOT管理 > 高级自定义规则模块支持。

等于多值之一、不等于任一值

Web SDK

通过WebSDK采集到的探针信息,如网页端UMID、键盘/鼠标/触摸屏按下次数等,识别异常流量。

说明

BOT管理 > 高级自定义规则模块支持。

  • 等于

  • 值大于、值小于

App SDK

可基于App SDK采集的探针信息做精细化管控。

说明

BOT管理 > 高级自定义规则模块支持。

  • 包含、不包含

  • 等于、不等于

  • 长度小于、长度等于、长度大于

  • 等于多值之一、不等于任一值

  • 包含多值之一、不包含任一值

  • 正则匹配、正则不匹配

  • 前缀匹配、后缀匹配

  • 存在、不存在

  • 内容为空