接入Web应用防火墙(Web Application Firewall,简称WAF)后,您可以设置自定义响应规则,自定义客户端请求被WAF拦截时返回给客户端的拦截页面的样式和内容,包含响应码、响应头、响应体。自定义响应模块默认未开启。本文介绍如何创建自定义响应防护模板以及自定义响应规则。
背景信息
如果未设置自定义响应规则,WAF拦截客户端请求时,默认向客户端返回统一的拦截响应页面。

您可以通过设置自定义响应规则,自定义拦截响应的内容,包括响应码Status Code、响应头字段Response Headers、响应体Response。
前提条件
- 已开通包年包月WAF3.0的企业版、旗舰版实例,或按量付费WAF3.0实例。具体操作,请参见开通包年包月WAF 3.0、开通按量付费WAF 3.0。 
- 已将Web业务添加为WAF 3.0的防护对象和防护对象组。 
模板类型
自定义响应的防护模板有以下两种类型。
| 防护模板 | 说明 | 生效对象 | 
| 默认防护模板 | WAF不提供初始默认防护模板,需要手动创建。 | 新建时,对没有关联自定义防护模板的防护对象/组默认勾选为生效,后续新增的防护对象也会自动加入到默认防护模板中,可手动调整。 | 
| 自定义防护模板 | 自定义的防护模板,需要手动创建。 | 需要设置生效对象,只对关联到防护模板的防护对象和对象组生效。 | 
创建自定义响应防护模板
自定义响应不提供初始默认防护模板。如果您需要启用自定义响应规则,您必须新建一个防护模板。
- 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。 
- 在左侧导航栏,选择。 
- 在Web 核心防护页面下方自定义响应区域,单击新建模板。 
- 在新建模板 - 自定义响应面板,完成以下配置,单击确定。 - 配置项 - 说明 - 模板名称 - 为该模板设置一个名称。 - 长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。 - 是否设置为默认模板 - 默认防护模板无需设置生效对象,默认应用于所有未关联到自定义防护模板的防护对象和对象组(包括后续新增、从自定义防护模板中移除的防护对象和对象组),您也可以手动将它们从默认模板中移出。一个防护模块只允许设置一个默认模板并只能在新建模板时设置。 - 规则配置 - 设置自定义响应规则。一个自定义响应防护模板只能配置一套规则。 - 响应码 - 设置客户端请求被WAF拦截时,WAF返回给客户端的HTTP状态码。取值范围:200~600。WAF的默认拦截响应码为405。 
- 自定义header - 设置客户端请求被WAF拦截时,WAF返回给客户端的响应包含的头字段。每个头字段包含header名和header值。最多支持添加五个header字段。 
- 页面响应体 - 设置拦截响应页面的源代码。配置要求如下: - 支持使用HTML、JSON等格式。 
- 代码包含的字符长度不超过4000。 
 重要- 如需在响应页面中保留请求ID,用于通过日志服务查询被拦截的请求,请在适当位置引用 - {::trace_id::}字符串。
- 您可以通过自定义header,添加 - content-type头字段,指定响应体的格式。
 
 - 生效对象 - 从已添加的配置防护对象和防护对象组中,选择要应用该模板的配置防护对象和防护对象组。 - 一个防护对象或对象组只能关联一个自定义响应防护模板。如果您设置了默认防护模板,默认所有未关联到自定义防护模板的防护对象和对象组勾选为生效;当您没有设置默认模板,则不会默认勾选防护对象与对象组为生效。生效对象均支持手动修改。 - 新建的防护模板默认开启,您可以在防护模板列表执行如下操作: - 查看模板关联的防护对象/组的数量。 
- 通过模板开关,开启或关闭模板。 
- 为该模板新建规则。 
- 编辑、删除或复制防护模板。 
- 单击防护模板名称左侧的  图标,查看该防护模板包含的规则信息。 图标,查看该防护模板包含的规则信息。
 
自定义响应防护模板生效后,所有生效对象的默认拦截响应页面将被替换为您在规则配置中自定义的响应内容。如果需要恢复默认的拦截响应页面,请关闭或删除对应的防护模板。
相关文档
- 如果您想了解WAF 3.0的防护对象、防护模块及防护流程等信息,请参见防护配置概述。 
- 如果您想使用API创建防护模板,请参见创建防护模板。 
- 如果您想创建一个Web核心防护规则,并配置规则内容,请参见创建Web核心防护规则。