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

什么是匹配条件

匹配条件指需要Web应用防火墙(Web Application Firewall,简称WAF)检测的请求特征。您在设置白名单规则自定义规则Bot管理时,通过定义匹配条件,指定要检测的请求特征。如果某个请求满足规则中设置的匹配条件,则该请求命中对应规则;WAF会依据规则中设置的规则动作,对请求执行相应处置(例如,放行、拦截、校验等)。匹配条件
匹配条件匹配字段逻辑符匹配内容组成。配置示例如下:
  • 示例1:匹配字段URI逻辑符包含匹配内容/login.php,表示当被请求的路径包含/login.php时,则请求命中该规则。
  • 示例2:匹配字段IP逻辑符属于匹配内容192.XX.XX.1,表示当发起连接的客户端IP为192.XX.XX.1时,则请求命中该规则。
重要 使用URL编码、HTML编码、Unicode编码等常见编码的请求内容,会在解码后再按照匹配内容做匹配。

支持的匹配字段

下表描述了匹配条件中支持使用的匹配字段。

匹配字段 说明 支持的逻辑符
URI 请求的统一资源标识符URI(Uniform Resource Identifier),表示被请求的资源的路径。

对应匹配内容以/开头,不包含域名,例如,/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~8192。
  • 等于、值大于、值小于
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中,param1param1都是请求参数。
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
Server-Port 服务器端口。
  • 等于、不等于、等于多值之一、不等于任一值
File Extension 被请求文件的扩展名,例如,.png、.php。
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
  • 正则匹配、正则不匹配
    重要 使用该逻辑符的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项
Filename 请求路径末尾的文件名。例如,在/abc/index.php中,index.php表示文件名。
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
  • 正则匹配、正则不匹配
    重要 使用该逻辑符的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项
Host 被请求的域名。
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
  • 正则匹配、正则不匹配
    重要 使用该逻辑符的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项
Cookie Name Cookie的键名称。例如,在acw_tc:111这个Cookie中,awc_tc是Cookie的键名称。
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
  • 正则匹配
    重要 使用该逻辑符的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项
Body Parameter 请求Body中的参数名称。例如,请求Body中包含以下JSON字符串a=1&b=2,那么ab就是参数名称。
重要 使用该匹配字段的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项
  • 等于、不等于、等于多值之一、不等于任一值
  • 包含、不包含、包含多值之一、不包含任一值
  • 存在、不存在
  • 内容为空
  • 长度等于、长度大于、长度小于
  • 前缀匹配、后缀匹配
  • 正则匹配
    重要 使用该逻辑符的自定义规则为高级规则。高级规则与基础规则的计费标准不同,具体信息,请参见计费项