如何在 AWS WAF 中为受到特定规则阻止的 Web 请求配置自定义响应?

2 分钟阅读
0

我想为受到 AWS WAF 规则组中的特定规则阻止的请求配置自定义响应。

解决方法

Count(计数)规则操作中,设置要为其配置自定义响应的 AWS WAF 托管式规则。然后,在托管式规则组下方创建自定义规则以生成自定义响应。如果请求与托管式规则生成的标签相匹配,则会发送响应。

以下示例为核心规则集 (CRS) 托管式规则组中的 AWS WAF 托管式规则 CrossSiteScripting_QueryArguments 设置自定义响应。

创建由规则操作使用的自定义响应消息

完成以下步骤:

  1. 在您的 AWS 区域打开 AWS WAF 控制台
  2. 在导航窗格中,选择 Web ACLs(Web ACL),然后选择您的 Web 访问控制列表 (Web ACL)。
  3. 选择 Custom response bodies(自定义响应正文),然后选择 Create custom response body(创建自定义响应正文)。
  4. 对于 Response body object name(响应正文对象名称),输入名称。
  5. 对于 Content type(内容类型),选择 Plain text(纯文本)。
    **注意:**响应正文可以是 JSON、HTML 或纯文本。
  6. Response body(回复正文)中,输入您的回复消息,然后选择 Save(保存)。

**注意:**Amazon CloudFront 和 Amazon API Gateway 也支持自定义响应。但是,针对块操作的 AWS WAF 自定义响应优先于您的受保护资源中定义的任何响应规范。

创建自定义规则以发送自定义响应

完成以下步骤:

  1. 在您的区域中打开 AWS WAF 控制台
  2. 在导航窗格中,选择 Web ACLs(Web ACL),然后选择您的 Web ACL。
  3. 选择 Rules(规则)选项卡,然后选择 Add rules(添加规则)。
  4. 选择 Add my own rules and groups(添加我自己的规则和组)。
  5. 对于 Rule type(规则类型),请选择 Rule builder(规则生成器)。
  6. 对于 Name(名称),输入规则的名称。
  7. 对于 Type(类型),选择 Regular rule(常规规则)。
  8. 选择 If a request(如果有请求)下拉列表,然后选择 matches the statement(匹配该语句)。
  9. 选择 Inspect(检查)下拉列表,然后选择 Has a label(有标签)。
  10. 对于 Match scope(匹配范围),选择 Label(标签)。
  11. 对于 Match key(匹配密钥),输入规则标签。例如,awswaf:managed:aws:core-rule-set:CrossSiteScripting_QueryArguments
  12. 对于 Action(操作),为自定义规则选择 Block(阻止)。
  13. 展开 Custom response(自定义响应),然后选择 Enable(启用)。
  14. 对于 Response code(响应代码),输入您的响应代码,例如 307
  15. (可选)对于 Response headers(响应标头),选择 Add a new custom header(添加新的自定义标头)。
  16. 对于 Key(密钥),输入标头名称。
  17. 对于 Value(值),输入标头值。
  18. Choose how you would like to specify the response body - optional(选择要如何指定响应正文-可选)中,选择下拉列表。
  19. 选择自定义响应正文,然后选择 Add Rule(添加规则)。

**注意:**有关自定义响应支持的 HTTP 状态代码列表,请参阅自定义响应支持的状态代码

相关信息

如何创建复杂的自定义 AWS WAF JSON 规则?

AWS 托管式规则组列表

为什么我的 AWS WAF 自定义规则不起作用?

使用 AWS WAF 对请求和响应进行自定义

AWS 官方
AWS 官方已更新 8 个月前