字符串匹配规则语句
本节介绍了什么是字符串匹配语句及其工作方式。
字符串匹配语句指示 AWS WAF 要在请求中搜索的字符串、在请求中的搜索位置以及如何搜索。例如,您可以在请求中查找任何查询字符串开头的特定字符串,也可以查找请求 User-agent
标头的精确匹配项。字符串通常由可打印 ASCII 字符组成,但您可以使用从十六进制 0x00 到 0xFF (十进制 0 到 255) 的任何字符。
规则语句特征
嵌套 – 您可以嵌套此语句类型。
WCU – 基本费用取决于您使用的匹配类型。
-
完全匹配字符串 – 2
-
以字符串开头 – 2
-
以字符串结尾 – 2
-
包含字符串 – 10
-
包含单词 – 10
如果您使用请求组件所有查询参数,请添加 10 个 WCU。如果您使用请求组件 JSON 正文,则将基本成本 WCU 增加一倍。对于您应用的每个文本转换,添加 10 个 WCU。
此语句类型在 Web 请求组件上运行,需要以下请求组件设置:
请求组件 – Web 请求中要检查的部分,例如查询字符串或正文。
警告
如果要您检查请求组件正文、JSON 正文、标头 或 Cookie,请在 在 AWS WAF 中处理超大 Web 请求组件 中阅读有关可检查的内容 AWS WAF 数量的限制。
有关请求组件的更多信息,请参阅 在 AWS WAF 中调整规则语句设置。
可选文本转换 – 在检查请求组件之前 AWS WAF 要对其执行的转换。例如,您可以将空格转换为小写或标准化空格。如果您指定多个转换,AWS WAF 将按列出的顺序处理它们。有关信息,请参阅在 AWS WAF 中使用文本转换。
此外,此语句需要以下设置:
-
要匹配的字符串 – 这是 AWS WAF 要与指定请求组件比较的字符串。字符串通常由可打印 ASCII 字符组成,但您可以使用从十六进制 0x00 到 0xFF (十进制 0 到 255) 的任何字符。
-
字符串匹配条件 – 表示您希望 AWS WAF 执行的搜索类型。
-
完全匹配字符串 – 字符串和请求组件的值相同。
-
以字符串开头 – 字符串出现在请求组件的开头。
-
以字符串结尾 – 字符串出现在请求组件的末尾。
-
包含字符串 – 该字符串出现在请求组件中的任何位置。
-
包含词 – 您指定的字符串必须显示在请求组件中。
对于此选项,指定的字符串必须仅包含字母数字字符或下划线(A-Z、a-z、0-9 或 _)。
请求必须满足以下条件之一:
-
字符串与请求组件的值精确匹配,如标头的值。
-
字符串位于请求组件的开头,并且后跟字母数字字符或下划线 (_) 之外的字符(例如,
BadBot;
)。 -
字符串位于请求组件的末尾,并且前面是字母数字字符或下划线 (_) 之外的字符,例如,
;BadBot
。 -
字符串位于请求组件的中间,并且前面和后面是字母数字字符或下划线 (_) 之外的字符,例如,
-BadBot;
。
-
-
在何处查找规则语句
-
控制台上的规则生成器 – 对于匹配类型,请选择字符串匹配条件,然后填写匹配所依据的字符串。
-
类型 – ByteMatchStatement