字符串匹配规则语句 - AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced

字符串匹配规则语句

本节介绍了什么是字符串匹配语句及其工作方式。

字符串匹配语句指示 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