在设置白名单规则、自定义规则或Bot管理规则时,需要在规则中配置匹配条件,定义要匹配的请求特征。本文介绍了规则匹配条件支持使用的字段及其释义。
什么是匹配条件
匹配条件指需要Web 应用防火墙 WAF(Web Application Firewall)检测的请求特征。您在设置白名单规则、自定义规则或Bot管理时,通过定义匹配条件,指定要检测的请求特征。如果某个请求满足规则中设置的匹配条件,则该请求命中对应规则;WAF会依据规则中设置的规则动作,对请求执行相应处置(例如,放行、拦截、校验等)。
匹配条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:
匹配字段 | 逻辑符 | 匹配内容 | 说明 |
URI Path | 包含 |
| 当请求的路径包含 |
IP | 属于 |
| 当客户端IP为 |
支持的匹配字段
下表列出了匹配条件中支持的字段及其相关规则。
高级规则定义与计费
匹配机制
大小写敏感性:除特殊说明外,所有匹配字段的匹配内容均不区分大小写。
编码处理:对于包含 URL 编码、HTML 编码或 Unicode 编码等常见编码的请求内容,系统将自动解码后再进行匹配。
匹配字段 | 说明 | 支持的逻辑符 |
URI | 请求的统一资源标识符URI(Uniform Resource Identifier),表示被请求的资源的路径。一般来说,URI=URI Path + Query String。 对应匹配内容以 |
|
IP | 请求的来源IP,即发起请求的客户端的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中问号(?)后面的部分。例如, 说明 Query String Parameter的自定义Parameter大小写敏感。 |
|
Server-Port | 服务器端口。 |
|
File Extension | 被请求文件的扩展名,例如,.png、.php。 |
|
Filename | 请求路径末尾的文件名。例如,在 |
|
Host | 被请求的域名。 |
|
Cookie Name | Cookie的键名称。例如,在 说明 Cookie Name的自定义Cookie-Exact大小写敏感。 |
|
Body Parameter |
|
|
Client-ID | 客户端(如浏览器或应用程序)标识,通过User Agent信息和流量指纹等特征来识别HTTP请求来源于哪种客户端。 说明 仅模块支持。 |
|
JA3 Fingerprint | 通过将TLS握手过程中的关键参数(包括TLS版本、密码套件、压缩算法和TLS扩展等信息)进行MD5哈希处理,生成一个字符串用来表示客户端的TLS配置,该字符串即JA3指纹。 JA3指纹可以用于识别和区分不同类型的TLS客户端,例如Web浏览器、移动应用程序、恶意软件等。 说明 仅模块支持。 |
|
JA4 Fingerprint | JA4指纹通过引入更多的上下文信息和算法,例如浏览器的版本、操作系统等,减少了JA3指纹可能导致的重复性问题。 JA4指纹能够更准确地鉴别出真实的用户与伪装者,降低误识率。 说明 仅模块支持。 |
|
HTTP/2 Fingerprint | 根据HTTP2客户端的原始指纹,利用MD5算法处理后生成的HTTP2.0指纹。用来分析和识别不同的客户端,实现更安全和高效的通信。 说明 仅模块支持。 |
|
IDC | 基于源IP归属数据识别流量来源,云服务器成本较低,黑灰产易利用进行攻击。 说明 仅模块支持。 | 等于多值之一、不等于任一值 |
Web SDK | 通过WebSDK采集到的探针信息,如网页端UMID、键盘/鼠标/触摸屏按下次数等,识别异常流量。 说明 仅模块支持。 |
|
App SDK | 可基于App SDK采集的探针信息做精细化管控。 说明 仅模块支持。 |
|