本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于允许、计数和的自定义请求标头插入CAPTCHA行动
你可以指示Amazon WAF在原始 HTTP 请求允许请求通过时将自定义标头插入到原始 HTTP 请求中。您只能添加到请求中。您不能修改或替换原始请求的任何部分。
此选项适用于设置为允许、计数或CAPTCHA以及设置为允许的 Web ACL 默认操作。有关规则操作的更多信息,请参阅 Amazon WAF 规则操作。有关默认 Web ACL 操作的更多信息,请参阅决定 Web ACL 的默认操作.
自定义标头插入的用例包括向下游应用程序发送信号,要求其根据插入的标头以不同的方式处理请求,以及标记请求以供分析。
自定义请求标头名称
Amazon WAF为它插入的所有请求标头加上前缀x-amzn-waf-,以避免与请求中已有的标头混淆。例如,如果您指定标头名称sample,Amazon WAF插入标题x-amzn-waf-sample.
同名的标题
如果请求已经有同名的标头Amazon WAF正在插入,Amazon WAF覆盖标题。因此,如果您在多个具有相同名称的规则中定义标头,则检查请求并找到匹配项的最后一条规则将添加其标头,而之前的任何规则都不会。
使用计数或的自定义标题CAPTCHA行动
countCAPTCHA规则操作不会停止Amazon WAF从处理 Web 请求。如果您使用使用这些操作的规则插入自定义标题,则后续规则也可能会插入自定义标题。有关规则操作行为的信息,请参见Amazon WAF 规则操作.
例如,假设您具有以下规则,按所示顺序排列优先级:
-
RuleA 具有计数操作和名为的自定义标题
RuleAHeader. -
带有允许操作和名为的自定义标头的规则 B
RuleBHeader.
如果请求同时匹配规则 A 和规则 B,Amazon WAF插入标题x-amzn-waf-RuleAHeader和x-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" } }