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

引入全新的主机体验 Amazon WAF

现在,您可以使用更新的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息,请参阅 使用更新的主机体验

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

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

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

此选项适用于规则操作Allow、CountCAPTCHA、Challenge和,以及设置为的保护包或 Web ACL 默认操作Allow。有关规则操作的更多信息,请参阅 在中使用规则操作 Amazon WAF。有关默认保护包或 Web ACL 操作的更多信息,请参阅在中设置保护包或 Web ACL 的默认操作 Amazon WAF

自定义请求标头名称

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 请求中插入自定义标头。因此,如果您将自定义请求处理与将操作设置为 Count 的规则一起使用,则后续规则不会检查您添加的自定义标头。

自定义请求处理示例

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

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