匹配条件

最近更新时间:2024-07-03 10:40:31

我的收藏

概述

Web 防护功能通过匹配请求的不同条件来实现访问管控。以下详细介绍了各种匹配条件选项、匹配条件说明以及相关配置方式和限制。

使用匹配条件

您可以使用规则的匹配条件指定规则的生效范围,控制防护例外规则、自定义规则、速率限制、自定义 Bot 规则的生效范围。
说明:
当配置了多个匹配条件时,规则仅在全部匹配条件都满足时生效。

匹配方式

当匹配字段和匹配内容满足匹配方式要求时,匹配条件成立。
说明:
请求头部的匹配字段(例如:Referer 头部、自定义头部等)使用等于、不等于、包含、不包含、通配符匹配、通配符不匹配、正则匹配匹配方式时,仅当该头部存在且不为空时才能满足匹配条件。
匹配方式
匹配方式说明
等于(在列表中)
匹配内容列表中,包含匹配字段的完整字符串,不区分大小写。
匹配内容可配置多个匹配字段,当匹配字段匹配任一值时,即满足匹配条件。
不等于(不在列表中)
匹配内容列表中,不包含匹配字段的完整字符串,不区分大小写。
匹配内容可配置多个值,当所有值均不匹配匹配字段时,即满足匹配条件。
包含(关键字)
匹配字段字符串中,包含了匹配内容列表中的任一的完整字符串内容,不区分大小写。
匹配内容可配置多个值,当任一值不在匹配字段中出现时,即满足匹配条件。
不包含(关键字)
匹配字段字符串中,不包含匹配内容列表中的任一的完整字符串内容,不区分大小写。
匹配内容可配置多个值,当所有值均不在匹配字段中出现时,即满足匹配条件。
通配符匹配
匹配内容列表中,包含可通配匹配字段的字符串,不区分大小写。支持通配的字符有:
星号*:匹配零个或多个字符。
问号?:匹配一个字符。
匹配内容可配置多个通配符表达式,当匹配字段匹配任一通配符表达式时,即满足匹配条件。
匹配内容中未包含通配符时,该匹配字段按完整匹配方式进行判断。
通配符不匹配
匹配内容列表中,不包含可通配匹配字段的字符串,不区分大小写。支持通配的字符有:
星号*:匹配零个或多个字符。
问号?:匹配一个字符。
匹配内容可配置多个通配符表达式,当匹配字段与所有通配符表达式都不匹配时,即满足匹配条件。
匹配内容中未包含通配符时,该匹配字段按完整匹配方式进行判断。
长度大于
匹配字段存在,且数据长度(按字符串包含字符数计)大于指定长度。
长度小于
匹配字段存在,且数据长度(按字符串包含字符数计)小于指定长度。
内容为空
匹配字段存在,且为空字符串
不存在
匹配字段不存在。
正则匹配
匹配字段数据可满足匹配内容中的正则表达式。

匹配条件选项及说明

说明:
1. 支持配置的匹配条件,根据规则类型和您订阅的 EdgeOne 套餐有些区别。具体支持情况请参考套餐选型对比。
2. 单条规则中所有匹配内容中,匹配项目数量总和不超过 128 个(包括同时匹配多个值的匹配条件)。
匹配条件选项
匹配条件说明
请求客户端 IP
匹配请求的来源 IP 地址。支持基于地域、ASN、IP 和 CIDR 网段进行匹配。
使用匹配不匹配逻辑符号选项时,可匹配客户端 IP 、CIDR 网段和 IP 分组。
单个匹配条件最多可配置8个 IP 分组。
使用地域包含地域不包含逻辑符号选项时,可匹配客户端 IP 的归属地域。
使用 ASN 归属ASN 归属不等于逻辑符号选项时,可匹配客户端 IP 所归属的 BGP 自治系统编号(ASN)。
请求客户端 IP(优先匹配 XFF 头部)
当请求携带合法 XFF(X-Forwarded-For)头部时,匹配请求 XFF 头部第一个 IP;否则,匹配请求来源 IP 地址。
使用匹配不匹配逻辑符号选项时,可匹配客户端 IP 、CIDR 网段和 IP 分组。
单个匹配条件最多可配置 8 个 IP 分组。
使用地域包含地域不包含逻辑符号选项时,可匹配客户端 IP 的归属地域。
使用 ASN 归属ASN 归属不等于逻辑符号选项时,可匹配客户端 IP 所归属的 BGP 自治系统编号(ASN)。
自定义请求头部
匹配请求的指定头部,提供额外参数选项匹配特定名称的头部值。
忽略大小写。
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
请求 URL
匹配请求的 URL。例如:/example.html?region=cn 。
忽略大小写。
不包含 Hostname
包含 URL 查询参数
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
请求来源(Referer 头部)
匹配请求的 Referer 头部。
忽略大小写。
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
请求内容类型(Accept 头部)
匹配请求的 Accept 头部。
忽略大小写。
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
请求路径(Path)
匹配请求 URL 的路径部分。例如:/example.html 或者 /api/v2/login 。
不包含 Hostname。
不包含查询参数。
忽略大小写。
请求方式(Method)
匹配请求的方法。
忽略大小写。
支持多项选择:GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS、CONNECT。
请求 Cookie
匹配指定请求 Cookie 头部参数值。需指定 Cookie 参数名称。
忽略大小写。
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
XFF 扩展头部
匹配请求的 XFF(X-Forwarded-For)头部。
忽略大小写。
支持等于、不等于、包含、不包含、通配符匹配、通配符不匹配、长度大于、长度小于、内容为空、不存在、正则匹配。
网络层协议
匹配请求使用的 IP 协议类型。
支持多项选择:IPv4、IPv6。
应用层协议
匹配请求使用的应用层协议。
支持多项选择:HTTP、HTTPS。
响应状态码
匹配响应的 HTTP 状态码。
仅支持速率限制,选择基于响应统计时支持配置。
最多支持同时匹配20个状态码。
请求正文
匹配请求的正文。
仅支持匹配请求正文的前 8KB 数据