在策略表达式中使用运算符和操作数

Last published : Oct 14, 2026
运算符是标识操作一个或多个对象或操作数的运算(例如数学、布尔或关系运算)的符号。本主题的第一部分定义了您可以使用的运算符并提供了定义。第二部分列出了可用于特定限定符(例如方法、URL 和查询)的运算符。

运算符和定义

本节定义了创建策略表达式时可以使用的运算符,并对运算符进行了描述。
==, !=, EQ, NEQ
这些运算符测试精确匹配。它们区分大小写(“cmd.exe”不等于“cMd.exe”)。这些运算符可用于创建权限以允许满足精确语法的特定字符串,但排除其他字符串。
GT
此运算符用于数值比较。它用于 URL 和查询字符串的长度。
CONTAINS、NOTCONTAINS
这些运算符对指定的限定符进行检查,以确定指定的字符串是否包含在限定符中。这些运算符不区分大小写。
EXISTS、NOTEXISTS
这些运算符检查是否存在特定的限定符。例如,这些运算符可以应用于 HTTP 标头,以确定是否存在特定的 HTTP 标头或 URL 查询。
CONTENTS
该运算符检查限定符是否存在以及它是否有内容(即,无论值是什么,标头是否存在以及是否有与之关联的值)。

限定符、运算符、操作数、操作和示例

本节显示了可用于运算符和操作数的参数。每个项目都以限定符开头,然后列出关联的运算符和操作数,描述表达式执行的操作,并提供示例。
Method(方法)
运算符:EQ、NEQ
操作数:必填项:
-  标准 HTTP 方法
-  支持的方法
-  GET、HEAD、POST、PUT、DELETE OPTIONS、TRACE、CONNECT
操作:将传入的请求方法验证为配置的方法。
示例:Method EQ GET
URL
运算符:EQ、NEQ
操作数:必填项:URL(格式:/\[prefix\]\[*\]\[.suffix\])
操作:使用配置的 URL 验证传入 URL。
示例:
URL EQ / foo*.asp
URL EQ /foo*
URL EQ /*.asp
URL EQ /foo.asp
运算符:CONTAINS、NOTCONTAINS
操作数:必填项:任何字符串(用引号表示)
操作:验证传入 URL 中是否存在配置的模式。(包括 URL 和 URL 查询。)
示例:URL CONTAINS 'ZZZ'
URL LEN
运算符:GT
操作数:必填项:长度(以整数值表示)
操作:将传入 URL 长度与配置的长度进行比较。(包括 URL 和 URL 查询。)
示例:URLLEN GT 60
URL QUERY
运算符:CONTAINS、NOTCONTAINS
操作数:必填项:任何字符串(带引号)。
可选:长度和偏移量
操作:
验证传入的 URL 查询中是否存在配置的模式。
用法与内容类似。
如果未指定选项,则使用该模式之后的整个 URL 查询。
如果存在选项,则仅显示使用该模式后的查询长度。
偏移量用于指示从何处开始搜索图案。
示例:URLQUERY CONTAINS 'ZZZ'
URL QUERY LEN
运算符:GT
操作数:必填项:长度(以整数值表示)
操作:将传入 URL 查询长度与配置的长度进行比较。
示例:URLQUERYLN GT 60
URL TOKENS
运算符:EQ、NEQ
操作数:必填项:URL 标记(支持的 URL 标记 =、+、%、!、&、?)。
操作:比较传入 URL 中是否存在已配置的令牌。必须在问号前面输入反斜杠 (\\)。
示例:URLTOKENS EQ '% , +, &, \\?'
VERSION
运算符:EQ、NEQ
操作数:必填项:标准 HTTP 版本。有效的 HTTP 版本字符串 HTTP/1.0、HTTP/1.1
操作:将传入请求的 HTTP 版本与配置的 HTTP 版本进行比较。
示例:VERSION EQ HTTP/1.1
标题
运算符:EXISTS、NOTEXISTS
操作数:无
操作:检查传入的请求中是否存在 HTTP 标头。
示例:Header Cookie EXISTS
运算符:CONTAINS、NOTCONTAINS
操作数:必填项:任何字符串(带引号)。
可选:长度和偏移量
操作:验证传入请求的特定标头中是否存在已配置的模式。用法与内容类似。如果未指定选项,则使用该模式之后的整个 HTTP 标头值。如果存在选项,则仅显示使用该模式后标题的长度。偏移量用于指示从何处开始搜索图案。
示例:Header Cookie CONTAINS "&sid"
运算符:CONTENTS
操作数:可选:长度和偏移量
操作:使用 HTTP 标头的内容如果未指定选项,则使用整个 HTTP 标头值。如果存在选项,则仅使用从偏移量开始的标题长度。
示例:Header User-Agent CONTENTS
SOURCEIP
运算符:EQ、NEQ
操作数:必填项:IP 地址
可选:子网掩码
操作:根据配置的 IP 地址验证传入请求中的源 IP 地址。如果指定了可选子网掩码,则根据配置的 IP 地址和子网掩码对传入请求进行验证。
示例:Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
DESTIP
运算符:EQ,NEQ
操作数:必填项:IP 地址
可选:子网掩码
操作:根据配置的 IP 地址验证传入请求中的目标 IP 地址。如果指定了可选子网掩码,则根据配置的 IP 地址和子网掩码对传入请求进行验证。
示例:Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
SOURCEPORT
运算符:EQ、NEQ
操作数
:必填项:端口号可选:端口范围
操作:根据配置的端口号验证传入请求中的源端口号。
示例:SOURCEPORT EQ 10–20
DESTPORT
运算符:EQ、NEQ
操作数
:必填项:端口号可选:端口范围
操作:根据配置的端口号验证传入请求中的目标端口号。
示例:DESTPORT NEQ 80
CLIENT.SSL.VERSION
运算符:EQ、NEQ
操作数:必需:SSL 版本
操作:检查安全连接中使用的 SSL 或 TLS 版本的版本。
示例:CLIENT.SSL.VERSION EQ SSLV3
CLIENT.CIPHER.TYPE
运算符:EQ、NEQ
操作数:必填项:客户端密码类型
操作:检查所使用的密码类型(导出或非导出)。
示例:CLIENT.CIPHER.TYPE EQ EXPORT
CLIENT.CIPHER.BITS
运算符:EQ、NEQ、GE、LE、GT、LT
操作数:必填项:客户端密码位
操作:检查所用密码的密钥强度。
示例:CLIENT.CIPHER.BITS GE 40
CLIENT.CERT
运算符:EXISTS、NOTEXISTS
操作数:无
操作:检查客户端在 SSL 握手期间是否发送了有效的证书。
示例:CLIENT.CERT EXISTS
CLIENT.CERT.VERSION
运算符:EQ、NEQ、GE、LE、GT、LT
操作数:客户端证书版本
操作:检查客户端证书的版本。
示例:CLIENT.CERT.VERSION EQ 2
CLIENT.CERT.SERIALNUMBER
运算符:EQ,NEQ
操作数
:必填项:客户证书序列号操作:检查客户证书的序列号。序列号被视为字符串。
示例:CLIENT.CERT.SER IALNUMBER EQ 2343323
CLIENT.CERT.SIGALGO
运算符:EQ,NEQ
操作数:必填项:客户端证书签名算法。
操作:检查客户证书中使用的签名算法。
示例:CLIENT.CERT.SIGALGO EQ md5WithRSAEncryption
CLIENT.CERT.SUBJECT
运算符:CONTAINS、NOTCONTAINS
操作数:必填项:客户证书主题
可选:长度,偏移量
操作:检查客户证书的主题字段。
示例:CLIENT.CERT.SUBJECT CONTAINS CN= Access_Gateway
CLIENT.CERT.ISSUER
运算符:CONTAINS、NOTCONTAINS
操作数:必填项:客户端证书颁发者
可选:长度,偏移量
操作:检查客户证书的颁发者字段。
示例:CLIENT.CERT.ISSUER CONTAINS O=Verisign
CLIENT.CERT.VALIDFROM
运算符:EQ、NEQ、GE、LE、GT、LT
操作数:必填项:日期
操作:检查客户证书的有效日期。
有效的日期格式如下:
Tue, 05 Nov 1994 08:12:31 GMT
Tuesday, 05-Nov-94 08:12:31 GMT
Tue Nov 14 08:12:31 1994
示例:CLIENT.CERT.VALIDFROM GE 'Tue Nov 14 08:12:31 1994'
CLIENT.CERT.VALIDTO
运算符:EQ、NEQ、GE、LE、GT、LT
操作数:必填项:日期
操作:检查客户证书的有效日期。
有效的日期格式如下:
Tue, 05 Nov 1994 08:12:31 GMT
Tuesday, 05-Nov-94 08:12:31 GMT
Tue Nov 14 08:12:31 1994
示例:CLIENT.CERT.VALIDTO GE 'Tue Nov 14 08:12:31 1994'