为非阻塞操作插入自定义请求标头 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为非阻塞操作插入自定义请求标头

当规则操作未阻止请求时,您可以指示Amazon WAF将自定义标头插入到原始 HTTP 请求中。使用此选项,您只能添加到请求中。您不能修改或替换原始请求的任何部分。自定义标头插入的用例包括向下游应用程序发出信号,要求其根据插入的标头以不同的方式处理请求,以及标记请求以供分析。

此选项适用于规则操作AllowCountCAPTCHA、Challenge和以及设置为的 Web ACL 默认操作Allow。有关规则操作的更多信息,请参阅 Amazon WAF 规则操作。有关默认 Web ACL 操作的更多信息,请参阅决定 Web ACL 的默认操作

自定义请求标头名称

Amazon WAF为它插入的所有请求标头添加前缀x-amzn-waf-,以避免与请求中已有的标头混淆。例如,如果您指定标题名称sample,则Amazon WAF插入标题x-amzn-waf-sample

同名标题

如果请求中已经有Amazon WAF正在插入的同名标头,则Amazon WAF覆盖该标头。因此,如果您在多个具有相同名称的规则中定义标头,则检查请求并找到匹配项的最后一条规则将添加其标头,而之前的任何规则都不会。

带有非终止规则操作的自定义标头

与Allow操作不同,该Count操作不会停止Amazon WAF使用 Web ACL 中的其余规则处理 Web 请求。同样CAPTCHA,当Challenge确定请求令牌有效时,这些操作不会停止Amazon WAF处理 Web 请求。因此,如果您使用包含其中一项操作的规则插入自定义标头,则后续规则也可能会插入自定义标头。有关规则操作行为的更多信息,请参阅Amazon WAF 规则操作

例如,假设您具有以下规则,按所示顺序确定优先级:

  1. RuleA 包含Count操作和名为的自定义标头RuleAHeader

  2. RuleB 包含一个Allow操作和一个名为的自定义标头RuleBHeader

如果请求同时匹配 RuleA 和 RuleB,则Amazon WAF插入标头x-amzn-waf-RuleAHeaderx-amzn-waf-RuleBHeader,然后将请求转发到受保护的资源。

Amazon WAF在 Web 请求完成检查后,将自定义标头插入到 Web 请求中。因此,如果您在将操作设置为的规则下使用自定义请求处理Count,则后续规则不会检查您添加的自定义标头。

自定义请求处理示例

您可以为规则的操作或 Web ACL 的默认操作定义自定义请求处理。以下清单显示了添加到 Web ACL 默认操作中的用于自定义处理的 JSON。

{ "Name": "SampleWebACL", "Scope": "REGIONAL", "DefaultAction": { "Allow": { "CustomRequestHandling": { "InsertHeaders": [ { "Name": "fruit", "Value": "watermelon" }, { "Name": "pie", "Value": "apple" } ] } } }, "Description": "Sample web ACL with custom request handling configured for default action.", "Rules": [], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SampleWebACL" } }