我想为受到 AWS WAF 规则组中的特定规则阻止的请求配置自定义响应。
解决方法
在 Count(计数)规则操作中,设置要为其配置自定义响应的 AWS WAF 托管式规则。然后,在托管式规则组下方创建自定义规则以生成自定义响应。如果请求与托管式规则生成的标签相匹配,则会发送响应。
以下示例为核心规则集 (CRS) 托管式规则组中的 AWS WAF 托管式规则 CrossSiteScripting_QueryArguments 设置自定义响应。
创建由规则操作使用的自定义响应消息
完成以下步骤:
- 在您的 AWS 区域打开 AWS WAF 控制台。
- 在导航窗格中,选择 Web ACLs(Web ACL),然后选择您的 Web 访问控制列表 (Web ACL)。
- 选择 Custom response bodies(自定义响应正文),然后选择 Create custom response body(创建自定义响应正文)。
- 对于 Response body object name(响应正文对象名称),输入名称。
- 对于 Content type(内容类型),选择 Plain text(纯文本)。
**注意:**响应正文可以是 JSON、HTML 或纯文本。
- 在 Response body(回复正文)中,输入您的回复消息,然后选择 Save(保存)。
**注意:**Amazon CloudFront 和 Amazon API Gateway 也支持自定义响应。但是,针对块操作的 AWS WAF 自定义响应优先于您的受保护资源中定义的任何响应规范。
创建自定义规则以发送自定义响应
完成以下步骤:
- 在您的区域中打开 AWS WAF 控制台。
- 在导航窗格中,选择 Web ACLs(Web ACL),然后选择您的 Web ACL。
- 选择 Rules(规则)选项卡,然后选择 Add rules(添加规则)。
- 选择 Add my own rules and groups(添加我自己的规则和组)。
- 对于 Rule type(规则类型),请选择 Rule builder(规则生成器)。
- 对于 Name(名称),输入规则的名称。
- 对于 Type(类型),选择 Regular rule(常规规则)。
- 选择 If a request(如果有请求)下拉列表,然后选择 matches the statement(匹配该语句)。
- 选择 Inspect(检查)下拉列表,然后选择 Has a label(有标签)。
- 对于 Match scope(匹配范围),选择 Label(标签)。
- 对于 Match key(匹配密钥),输入规则标签。例如,awswaf:managed:aws:core-rule-set:CrossSiteScripting_QueryArguments。
- 对于 Action(操作),为自定义规则选择 Block(阻止)。
- 展开 Custom response(自定义响应),然后选择 Enable(启用)。
- 对于 Response code(响应代码),输入您的响应代码,例如 307。
- (可选)对于 Response headers(响应标头),选择 Add a new custom header(添加新的自定义标头)。
- 对于 Key(密钥),输入标头名称。
- 对于 Value(值),输入标头值。
- 在 Choose how you would like to specify the response body - optional(选择要如何指定响应正文-可选)中,选择下拉列表。
- 选择自定义响应正文,然后选择 Add Rule(添加规则)。
**注意:**有关自定义响应支持的 HTTP 状态代码列表,请参阅自定义响应支持的状态代码。
相关信息
如何创建复杂的自定义 AWS WAF JSON 规则?
AWS 托管式规则组列表
为什么我的 AWS WAF 自定义规则不起作用?
使用 AWS WAF 对请求和响应进行自定义