接入Web应用防火墙(Web Application Firewall,简称WAF)后,您可以自定义访问控制规则和频率控制规则,防御符合规则的请求。本文介绍如何创建自定义规则防护模板并添加自定义规则。
背景信息
自定义规则分为以下类型:
自定义规则 | 说明 |
访问控制规则 | 根据客户端IP、请求URL及常见的请求头字段定义请求特征匹配条件,对命中匹配条件的请求执行相应处置。例如,您可以使用自定义规则拦截访问指定URI的请求、对包含指定User-Agent内容的请求进行校验等。 |
频率控制规则 | 在访问控制匹配条件的基础上,定义访问频率检测条件,对访问频率异常的统计对象执行相应处置。例如,如果同一个IP或会话在短时间内频繁命中匹配条件,您可以通过启用频率控制,在一段时间内拦截该IP或会话的请求。 |
前提条件
已开通包年包月版WAF 3.0或按量付费版WAF 3.0服务。
已将Web业务添加为WAF 3.0的防护对象和防护对象组。
模板类型
自定义规则的防护模板有以下两种类型。
防护模板 | 说明 | 生效对象 |
默认防护模板 | WAF不提供自定义规则初始默认防护模板,需要手动创建。 | 新建时对所有防护对象和防护对象组默认勾选为生效,后续新增的防护对象也会自动加入到默认防护模板中,可手动调整。 |
自定义防护模板 | 自定义的防护模板。需要手动创建。 | 需要设置生效对象,只对关联到防护模板的防护对象和对象组生效。 |
步骤一:创建自定义规则防护模板
自定义规则不提供初始默认防护模板。如果您需要启用自定义规则,您必须新建一个防护模板,再配置对应规则。
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择。
在Web 核心防护页面下方自定义规则区域,单击新建模板。
在新建模板 - 自定义规则面板,完成以下配置,单击确定。
配置项
说明
模板名称
为该模板设置一个名称。
长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。
是否设置为默认模板
默认防护模板无需设置生效对象,默认为所有防护对象/组默认勾选为生效,您也可以手动将它们从默认模板中移出。一个防护模块只允许设置一个默认模板并只能在新建模板时设置。
对于自定义规则防护模板,还支持为单个防护对象/对象组配置多个防护模板,具体生效规则请参见多套防护模板应用示例。
规则配置
单击新建规则,为当前模板新建自定义规则;或者忽略该设置,在创建防护模板后,再为模板新建规则。关于新建自定义规则的具体操作,请参见步骤二:在自定义规则防护模板中添加防护规则。
生效对象
从已添加的配置防护对象和防护对象组中,选择要应用该模板的配置防护对象和防护对象组。
一个防护对象或对象组可以关联多个自定义规则防护模板。如果您设置了默认防护模板,默认为所有防护对象/组默认勾选为生效;当您没有设置默认模板,则不会默认勾选防护对象与对象组为生效。生效对象均支持手动修改。
新建的防护模板默认开启,您可以在防护模板列表执行如下操作:
查看模板关联的防护对象/组的数量。
通过模板开关,开启或关闭模板。
为该模板新建规则。
编辑、删除或复制防护模板。
单击防护模板名称左侧的
图标,查看该防护模板包含的规则信息。
步骤二:在自定义规则防护模板中添加防护规则
只有添加防护规则后,自定义规则防护模板才具有防护作用。如果您已在创建自定义规则防护模板时添加了防护规则,可跳过该步骤。
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择。
在自定义规则区域,定位到要新建规则的防护模板,单击操作列下的新建规则。
在新建规则对话框,完成以下配置,单击确定。
配置项
说明
规则名称
为该规则设置一个名称。
支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。
匹配条件
设置该规则要匹配的请求特征。
单击新增条件,添加一个条件。一个规则中最多可以添加五个条件。如果定义了多个条件,则只有当多个条件同时满足时,才算命中规则。
每个条件由匹配字段、逻辑符和匹配内容组成。配置示例如下:
示例1:匹配字段为
URI
、逻辑符为包含
、匹配内容为/login.php
,表示当被请求的路径包含/login.php
时,则请求命中该规则。示例2:匹配字段为
IP
、逻辑符为属于
、匹配内容为192.1X.XX.XX
,表示当发起连接的客户端IP为192.1.XX.XX
时,则请求命中该规则。
关于匹配字段和逻辑符的更多说明,请参见匹配条件说明。
防护类型
选择是否启用频率控制。频率控制表示如果来自同一统计对象(IP、会话等)的请求频繁地命中规则,则在一段时间内,对该统计对象的所有访问执行相应处置。
重要频率控制规则按照防护对象维度来限制同一统计对象的请求频率。假设您将一个ALB实例作为防护对象并为该ALB实例应用了频率控制规则,如果ALB实例中包含多个域名的流量,则统计访问频率时会按照多个域名一起统计。如果您只需限制对某个域名的访问频率,可以使用以下方式进行配置:
方式1:将域名添加为WAF的防护对象,并为该域名对象应用频率控制规则。更多信息,请参见配置防护对象和防护对象组。
方式2:仍对云产品实例对象应用频率控制规则,但是在规则的匹配条件中,通过Host字段定义要限制访问频率的域名。
启用频率控制后,您需要设置频率控制参数。
频率检测条件
在统计时长(秒)内,一个统计对象命中规则的次数超过阈值(次),则对该对象进行黑名单处置。
响应码检测条件
获得响应码的响应数量或比例超过设置的数量或比例(%)时,则对该对象进行黑名单处置。
黑名单处置条件
将命中频率检测条件的统计对象加入黑名单,在黑名单超时时间内,对来自该对象黑名单生效范围内的请求执行规则动作中定义的处置。
规则动作
选择当请求命中该规则时,要执行的防护动作。可选项:
说明按量付费实例、包年包月企业版和旗舰版实例支持滑块验证。
JS验证或滑块验证仅适用于同步请求,异步请求会有兼容适配问题。对于XMLHttpRequest、Fetch等异步接口请求,如果没有注入Web SDK,则滑块、JS校验无法正常执行通过,因此需要在Bot管理中启用JS校验和滑块验证。具体操作,请参见Bot管理(旧版)。
启用了JS验证或滑块防护动作,当访问流量命中规则后,Web应用防火墙将对客户端发起JS校验或滑块验证,当客户端验证通过后将会在HTTP报文的Header中分别植入Cookie
acw_sc__v2
和acw_sc__v3
,用于标识客户端已经通过验证。
高级设置
仅包年包月企业版和旗舰版、按量付费版支持高级设置,包年包月基础版、高级版不支持该功能。
新建的规则默认开启。您可以在规则列表执行如下操作:
查看规则ID、规则条件等信息。
通过状态开关,开启或关闭规则。
编辑或删除规则。
后续步骤
您可以在安全报表页面,查询防护规则的防护详情。
相关文档
如果您想了解关于添加白名单规则时涉及的匹配条件和匹配字段,请参考匹配条件说明。
如果您想了解WAF 3.0的防护对象、防护模块及防护流程等信息,请参见防护配置概述。
如果您想使用API创建防护模板,请参见创建防护模板。
如果您想创建一个Web核心防护规则,并配置规则内容,请参见创建Web核心防护规则。
如果您想使用自定义防护功能来防御异常用户代理(UA)对源站的攻击,请参见通过自定义防护功能抵御异常UA攻击。