您在设置白名单规则或自定义规则时,需要在规则中配置匹配条件,定义要匹配的请求特征。本文介绍了规则匹配条件支持使用的字段及其释义。
什么是匹配条件
匹配条件指需要边缘WAF检测的请求特征。您在设置自定义防护策略、白名单防护策略、IP黑名单防护策略时,通过定义匹配条件,指定要检测的请求特征。如果某个请求满足规则中设置的匹配条件,则该请求命中对应规则;WAF会依据规则中设置的规则动作,对请求执行相应处置(例如,拦截、JS验证、观察等)。
支持的匹配字段
下表描述了匹配条件中支持使用的匹配字段。
匹配字段 | 适用的逻辑符 | 字段描述 |
URI |
| 请求的统一资源标识符URI(Uniform Resource Identifier),表示被请求的资源的路径。对应匹配内容以 |
IP |
| 请求的来源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 |
| 访问请求的请求内容信息。Body体超过8 KB的请求将不再拦截。 |
Http-Method |
| 请求的方法,包括GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH。 |
Header |
| 访问请求的头部信息。支持自定义的头部字段。 |
URI Path |
| 访问请求的URI路径。 |
Query String Parameter |
| 访问请求的URL地址中的参数部分,通常指URL中”?”后面的部分。例如, |
Host |
| 被请求的域名。 |
CookieName |
| Cookie的键名称。例如,在 |
BodyParameter |
| 请求Body中的参数名称。例如,请求Body中包含以下JSON字符串 |
Filename |
| 请求路径末尾的文件名。例如,在 |
File Extension |
| 被请求文件的扩展名,例如: |
逻辑符释义
逻辑符 | 说明 |
属于、不属于 | 匹配字段属于、不属于匹配内容。 |
包含、不包含 | 匹配字段包含、不包含匹配内容。 |
在列表中、不在列表中 | 匹配字段在、不在列表中匹配内容。 |
包含多值之一、不包含任一值 | 匹配字段包含匹配内容其中之一、匹配字段不包含任意一个匹配内容。 |
等于、不等于 | 匹配字段等于、不等于匹配内容。 |
等于多值之一、不等于任一值 | 匹配字段等于匹配内容其中之一、匹配字段不等于任意一个匹配内容。 |
长度等于、长度大于、长度小于 | 匹配字段的长度等于、大于、小于匹配内容。 |
存在、不存在 | 匹配字段存在、匹配字段不存在。 |
值小于、值等于、值大于 | 匹配字段的值小于、等于、大于匹配内容。 |
前缀匹配、后缀匹配 | 匹配字段的前缀、后缀包含匹配内容。 |
正则匹配、正则不匹配 | 匹配字段正则表达式、不匹配字段正则表达式 |
内容为空 | 匹配字段内容为空。 |
配置示例
示例1:匹配字段为URI、逻辑符为包含、匹配内容为
/login.php
,表示当被请求的路径包含/login.php
时,则请求命中该规则。示例2:匹配字段为IP、逻辑符为属于、匹配内容为192.168.0.1,表示当发起连接的客户端IP为192.168.0.1时,则请求命中该规则。