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

运算符是标识操作一个或多个对象或操作数的运算(例如数学、布尔或关系运算)的符号。本主题的第一部分定义了您可以使用的运算符并提供了定义。第二部分列出了可用于特定限定符(例如方法、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’

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