中的 Web 请求组件过大 AWS WAF - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

中的 Web 请求组件过大 AWS WAF

本节介绍了如何管理在 AWS WAF中检查 Web 请求正文、标头和 Cookie 的大小限制。

AWS WAF 不支持检查 Web 请求组件正文、标头或 Cookie 的超大内容。底层主机服务对转发以 AWS WAF 供检查的内容有数量和大小限制。例如,主机服务向发送的标头不超过 200 个 AWS WAF,因此对于包含 205 个标头的 Web 请求, AWS WAF 无法检查最后 5 个标头。

当 AWS WAF 允许 Web 请求继续访问您的受保护资源时,将发送整个 Web 请求,包括超出可以检查的数量和大小限制的任何 AWS WAF 内容。

组件检查大小限制

组件检查尺寸限制如下:

  • BodyJSON Body — 对于 Application AWS AppSync Load Balancer 和, AWS WAF 可以检查请求正文的前 8 KB。对于 CloudFront,默认情况下,APIGateway、Amazon Cognito、App Runner 和 Verified Access AWS WAF 可以检查前 16 KB,你可以在网页ACL配置中将限制提高到 64 KB。有关更多信息,请参阅 管理 AWS WAF 的正文检查大小限制

  • Headers— 最多 AWS WAF 可以检查请求标头的前 8 KB(8,192 字节),最多可以检查前 200 个标头。在达到第一个限制之前 AWS WAF ,内容可供检查。

  • Cookies— 最多 AWS WAF 可以检查请求的 cookie 的前 8 KB(8,192 字节),最多可以检查前 200 个 cookie。在达到第一个限制之前 AWS WAF ,内容可供检查。

规则语句的超大处理选项

在编写检查其中一种请求组件类型的规则语句时,您可以指定如何处理超大组件。超大处理 AWS WAF 告诉当规则检查的请求组件超过大小限制时,如何处理 Web 请求。

处理超大组件的选项如下:

  • Continue— 根据规则检查标准通常检查请求组件。 AWS WAF 将检查大小限制范围内的请求组件内容。

  • Match— 将 Web 请求视为与规则语句相匹配。 AWS WAF 将规则操作应用于请求,而不根据规则的检查标准对其进行评估。

  • No match— 如果不根据规则的检查标准对其进行评估,则将 Web 请求视为与规则声明不匹配。 AWS WAF 继续使用网络中的其余规则来检查 Web 请求,ACL就像对待任何不匹配的规则一样。

在 AWS WAF 控制台中,你需要选择其中一个处理选项。在控制台之外,默认选项是 Continue.

如果您将 Match 操作设置为的规则中的选项 Block,则该规则将阻止被检查组件过大的请求。对于任何其他配置,请求的最终处置取决于各种因素,例如您的 Web 中其他规则的配置ACL和 Web ACL 的默认操作设置。

非您拥有的规则组中的超大处理

组件大小和数量限制适用于您在网络中使用的所有规则ACL。这包括您在托管规则组以及其他账户与您共享的规则组中使用但未管理的任何规则。

当您使用您未管理的规则组时,该规则组可能有一条规则可以检查有限的请求组件,但不会按照您需要的方式处理超大内容。有关 AWS 托管规则如何管理超大尺寸组件的信息,请参阅AWS 托管规则规则组列表。有关其他规则组的信息,请咨询您的规则组提供程序。

管理网络中超大组件的指导方针 ACL

处理网络中超大组件的方式ACL可能取决于多种因素,例如请求组件内容的预期大小、Web ACL 的默认请求处理以及网络中的其他规则如何ACL匹配和处理请求。

管理超大 Web 请求组件的一般准则如下:

  • 如果您需要允许某些包含超大组件内容的请求,请添加规则以明确仅允许这些请求。确定这些规则的优先级,以便它们在网络ACL中检查相同组件类型的任何其他规则之前运行。使用这种方法,您将无法使用 AWS WAF 来检查允许传递给受保护资源的超大组件的全部内容。

  • 对于所有其他请求,您可以通过阻止超过限制的请求来防止任何额外的字节通过:

    • 您的规则和规则组 – 在检查有大小限制的组件的规则中,配置超大处理,以便阻止超过限制的请求。例如,如果您的规则阻止具有特定标头内容的请求,请将超大处理设置为与标头内容过大的请求相匹配。或者,如果您的网页默认会ACL屏蔽请求,并且您的规则允许特定的标头内容,则将规则的超大处理配置为与任何标题内容过大的请求不匹配。

    • 您不管理的规则组 – 为了防止您不管理的规则组允许超大请求组件,您可以添加一个单独的规则来检查请求组件类型并阻止超出限制的请求。在您的 Web 中设置规则的优先级,ACL使其在规则组之前运行。例如,在您的任何身体检查规则在网络ACL上运行之前,您可以阻止包含超大正文内容的请求。以下过程将介绍如何添加此类规则。

阻止超大 Web 请求组件

您可以在 Web 中添加一条规则ACL,阻止包含过大组件的请求。

添加阻止超大内容的规则
  1. 创建或编辑网站时,在规则设置中ACL,选择添加规则、添加我自己的规则和规则组、规则生成器,然后选择规则可视化编辑器。有关创建或编辑 Web 的指导ACL,请参阅在 AWS WAF 中查看 Web 流量指标

  2. 输入规则的名称,然后将类型设置保留为常规规则

  3. 将以下匹配设置更改为其默认设置:

    1. 语句中,对于检查,打开下拉列表并选择所需的 Web 请求组件,即正文标头Cookie

    2. 对于匹配类型,选择大小大于

    3. 大小中,键入一个至少等于该组件类型的最小大小的数字。对于标头和 Cookie,请键入 8192。在 Application Load Balancer 或 AWS AppSync Web 中ACLs,对于主体,键入8192。对于 API Gateway CloudFront、Amazon Cognito、App Runner 或 Verified Access 网站中的正文ACLs,如果你使用的是默认的正文大小限制,请键入。16384否则,请键入您为网站定义的正文大小限制ACL。

    4. 对于超大处理,请选择匹配

  4. 对于操作,选择阻止

  5. 选择 添加规则

  6. 添加规则后,在 “设置规则优先级” 页面上,将其移至 Web ACL 中检查相同组件类型的所有规则或规则组上方。这使新规则具有较低的数字优先级设置,因此 AWS WAF 需要先对其进行评估。有关更多信息,请参阅 在 Web ACL 中设置规则优先级