AWS WAF 如何处理对 HTTP 请求的正文检查?

上次更新日期:2022 年 7 月 26 日

AWS WAF 如何处理对 HTTP 请求的正文检查?

解决方法

AWS WAF 会检查请求正文的前 8KB(8,192 字节)。这是一项硬性服务限制,无法更改。

例如:

  • 如果正文为 5,000 字节:AWS WAF 可检查正文中的所有内容。
  • 如果正文为 8,500 字节:AWS WAF 可检查 1 到 8,192 字节的内容。从 8,193 字节到 8,500 字节的所有内容均不检查。

此限制在配置规则时非常重要,因为 AWS WAF 无法检查 8,192 字节后的正文内容。8,192 字节后的任何攻击 XSS 或 SQL 注入模式都不会被检测到。

要防止未经检查的正文部分受到攻击,请使用以下方法之一:

AWS Managed Rules Core 规则集

AWS Managed Rules Core 规则集(CRS)中的 SizeRestrictions_BODY 规则可检查大于 8KB(8,192 字节)的请求正文。超过 8KB 的请求正文将被阻止。

自定义正文检查规则

配置自定义主体检查规则时,可以选择超大请求处理操作。当请求正文大于 8,192 字节时,此操作生效。

例如,使用包含 XSS 注入攻击的请求正文配置自定义规则,请求正文为 9,000 字节。您可以从以下超大尺寸处理操作中进行选择:

  • Continue(继续):AWS WAF 检查 1 到 8,192 字节的正文内容是否存在 XSS 攻击。剩余的 8,193 到 9,000 字节的内容不检查。
  • Match(匹配):AWS WAF 将此请求标记为包含 XSS 攻击,并采取规则操作 [ALLOW(允许)或 BLOCK(阻止)]。这与请求正文是否包含 XSS 攻击模式无关。
  • Not match(不匹配):无论请求正文内容如何,AWS WAF 都将此请求标记为不包含 XSS 攻击。

使用 AWS Managed Core 规则集时,正文大小超过 8,192 字节的合法请求可能会被 SizeRestrictions_BODY 规则阻止。您可以创建允许规则以显式允许该请求。

例如,如果客户有来自 URL“/upload”的合法请求,则可以按如下方式配置规则:

1.    在您的 Web ACL 中,覆盖 SizeRestrictions 操作以从规则组中执行 Count(计数)操作。

2.    在 Core rule set(Core 规则集)之后,将标签匹配规则添加到 Web ACL。在规则中使用以下逻辑:

Has a label “awswaf:managed:aws:core-rule-set:SizeRestrictions_Body”
AND
    NOT (URL path contains “/upload”)
Action: BLOCK

使用上述配置,允许主体大小超过 8,192 字节的 URL 为“/upload”的请求。任何不是来自此 URL 的请求都将被阻止。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?