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