Web基础防护“拦截”模式应用最佳实践
在日常的Web应用防护中,企业通常会面临来自互联网的各种攻击威胁,如SQL注入、XSS攻击等。为了有效抵御这些攻击,企业可能会选择使用华为云WAF。然而,网站接入华为云WAF后,默认情况下,Web基础防护处于“仅记录”模式,这意味着虽然可以检测到攻击行为并生成攻击日志,但不会自动拦截这些攻击。
该设置对刚开始使用WAF的企业来说,可能不足以提供足够的安全防护,尤其是在发现攻击日志中存在大量真实攻击而非误报的情况下。因此,企业需要考虑如何从“仅记录”模式切换到“拦截”模式,以增强Web应用的安全性。本文档将指导用户如何根据业务流量特征,通过分析攻击日志来判断是否需要开启“拦截”模式,并详细介绍开启“拦截”模式的具体步骤,确保在不影响正常业务的前提下,有效防御潜在的攻击威胁。
应用场景
- 如果发现攻击日志中存在正常业务流量,建议调整防护等级或者设置误报屏蔽来避免正常业务的误拦截。
- 如果没有在攻击日志中发现正常业务流量,则可以切换到“拦截”模式启用拦截防护。
业务操作方面应注意以下问题:
- 正常业务的HTTP请求中尽量不要直接传递原始的SQL语句、JAVASCRIPT代码。
- 正常业务的URL尽量不要使用一些特殊的关键字(UPDATE、SET等)作为路径,例如:“https://www.example.com/abc/update/mod.php?set=1”。
- 如果业务中需要上传文件,不建议直接通过Web方式上传超过50M的文件,建议使用对象存储服务或者其他方式上传。
步骤一:配置Web基础防护规则
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,单击“防护策略”。
- 在防护策略列表,单击目标策略名称,进入目标策略的防护规则配置页面。
您也可以在“网站设置”页面,单击目标域名“防护策略”列的“已开启防护项”后的数字,进入网站绑定的防护策略的规则配置页面。
- 单击“Web基础防护”配置框,确认已开启Web基础防护规则。
:开启状态。 - 参考表1,配置Web基础防护规则。
图1 配置防护规则
表1 Web基础防护参数说明 参数
说明
建议取值
常规检测
功能开关
默认开启,支持防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。其中,SQL注入攻击主要基于语义进行检测。
此处建议保持默认配置,选择“开启”常规检测。

防护等级
根据实际业务,选择Web基础防护的防护等级,支持:
- 默认规则集【宽松】:防护粒度较粗,只拦截攻击特征比较明显的请求。
当误报情况较多的场景下,建议选择“宽松”模式。
- 默认规则集【中等】(默认):满足大多数场景下的Web防护需求。
开启Web基础防护后,防护等级默认为“中等”模式。
- 默认规则集【严格】:防护粒度最精细,可以拦截具有复杂的绕过特征的攻击请求,例如jolokia网络攻击、探测CGI漏洞、探测Druid SQL注入攻击。
建议您等待业务运行一段时间后,根据防护效果配置全局白名单规则,再开启“严格”模式,使WAF能有效防护更多攻击。
此处建议保持默认配置,选择“默认规则集【中等】”。
默认规则集【中等】
检测范围
Web基础防护的检测范围,支持如下检测项:- 深度检测(默认关闭):开启后,支持同形字符混淆、通配符变形的命令注入、UTF7、Data URI Schema等的防护。
- header全检测(默认关闭):开启后,支持对请求里Header中所有字段进行攻击检测。
- Shiro解密检测(默认关闭):开启后,支持对Cookie中的rememberMe内容做AES,Base64解密后再检测,覆盖几百种已知泄露密钥。
说明:
如果您的网站使用的是Shiro 1.2.4及之前的版本,或者升级到了Shiro 1.2.5及以上版本但是未配置AES密钥,强烈建议您开启“Shiro解密检测”,以防攻击者利用已泄露的密钥构造攻击。
此处可根据实际业务进行配置。如无特殊检测要求,建议保持默认配置,“关闭”上述检测项。
- 深度检测:

- header全检测:

- Shiro解密检测:

Base64解码检测
开启或关闭Base64解码检测开关。开启后,可对Header和Cookie中的Base64编码内容进行解码,有效识别和阻断潜在的攻击行为。

Webshell检测
开启或关闭Webshell检测开关。开启后,可防护通过上传接口植入的网页木马。HTTP2报文不支持Webshell检测。
此处可根据实际业务进行配置。如无特殊检测要求,建议保持默认配置,“关闭”Webshell检测。

防护动作
选择触发Web基础防护规则后,要执行的处置动作:- 仅记录(默认):请求触发规则后,WAF只记录不拦截。
- 拦截:请求触发规则后,WAF记录并拦截该请求。
将防护规则修改为拦截模式前,请先查看历史日志记录,确认没有正常请求触发防护规则时,再进行拦截。
“防护动作”配置为“拦截”时,可配置攻击惩罚。配置并选择攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。
此处建议配置“防护动作”为“拦截”。
拦截
- 默认规则集【宽松】:防护粒度较粗,只拦截攻击特征比较明显的请求。
步骤二:处理误报
开启“拦截”模式后,如果业务正常请求命中Web基础防护规则,则该请求会被WAF拦截,导致网站访问显示异常。在例行运营中,可持续分析攻击日志,并通过误报处理,使WAF不再拦截正常业务请求。
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,单击“防护事件”。
- 查看指定防护域名、实例、时间范围的防护详情,详情请参见查看防护日志。
- 在“防护事件”列表,定位到目标防护事件,单击“操作”列的“详情”,确认是否为误报事件。如是,单击“操作”列的“误报处理”。
- 在“误报处理”对话框,处理误报事件。
“误报处理”对话框默认关联了拦截该防护事件的策略名称、防护方式、防护域名、条件列表、不检测模块、不检测规则类型、不检测规则类别等信息,如果确认无误,可直接单击确认添加,将对应防护事件处理为误报事件,使WAF不再拦截该请求。
关于误报处理各参数的详细说明,如表2所示。
表2 参数说明 参数
参数说明
取值样例
防护方式
选择要应用此策略的域名。
- “全部域名”:默认防护应用此策略的所有防护域名。
- “指定域名”:防护应用此策略的指定防护域名。
指定域名
防护域名
“防护方式”选择“指定域名”时,选择或手动输入策略绑定的防护域名。单击“添加”,支持配置多个域名。
接入模式不同,选择或手动输入的域名格式不同:- 云模式-CNAME接入:完整防护域名。
- 云模式-ELB接入:域名:elb id。
- 防护域名为单域名时,选择或手动输入域名:elb id。
- 防护域名为泛域名时,选择或手动输入*:elb id。
例如,添加的防护域名为泛域名“*”,elb id为“c8c5fbd9-XXXX-XXXX-XXXX-d6f341a46ee5”,则此处指定域名为:“*:c8c5fbd9-XXXX-XXXX-XXXX-d6f341a46ee5”。
- 独享模式接入:完整防护域名或IP。
- 云模式-CNAME接入模式:“www.example.com”
- 云模式-ELB接入模式:“*:c8c5fbd9-XXXX-XXXX-XXXX-d6f341a46ee5”
- 独享模式:“www.example.com”或“192.168.2.3”。
条件列表
配置要匹配的请求特征。请求一旦命中该特征,WAF则按照配置的规则处置该请求。
- 至少需要配置一项,本条规则才能生效。
- 单击条件框内的“添加条件”增加组内新的条件,最多可添加30个条件。配置多个条件时,需同时满足,本条规则才生效。
- 单击条件框外的“添加条件”增加1组新的条件,最多可添加3组条件。多组条件之间是“或”的关系,即满足其中1组条件时,本条规则即生效。
条件设置参数说明如下:
- 字段:详细说明,请参见条件字段说明。
- 子字段:当“字段”选择“IPv4”、“IPv6”、“Params”、“Cookie”、“Header”或“Response Header”时,请根据实际使用需求配置子字段。子字段的长度不能超过2048字符。
当“字段”选择“Response Header”或者“Header”,且“子字段”非“所有子字段”、“任意子字段”时,支持“子字段大小写敏感”。
- 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
- 内容:输入或者选择条件匹配的内容。
当“逻辑”关系选择包含任意一个、不包含任意一个、等于任意一个、不等于任意一个、前缀为任意一个、前缀不为任意一个、后缀为任意一个、后缀不为任意一个时,需要选择引用表。
“字段”为“路径”
“逻辑”为“包含”
“内容”为“/product”
不检测模块
选择要添加的全局白名单的模块。
- 所有检测模块:通过WAF配置的其他所有的规则都不会生效,WAF将放行该域名下的所有请求流量。
- Web基础防护模块:支持按规则类型设置不检测的Web基础防护模块,例如对某些规则ID或者事件类别进行忽略设置。例如,某URL不进行XSS的检查,可设置屏蔽规则,屏蔽XSS检查。
- 按ID:按防护规则ID,配置不检测的模块。
选择该项后,需添加不检测规则ID,多个ID以英文逗号(,)分隔。最多可输入100个ID。
输入规则ID后,单击Enter键,可查看已添加的规则ID、规则描述、危险等级信息。
您也可以直接单击规则ID“操作”列的“误报处理”,设置“不检测规则类型”为“按ID”后,单击“确认添加”,将该规则ID加入全局白名单。
- 按类别:按攻击事件类别,配置不检测的模块。一个类别会包含一个或者多个规则ID。
选择该项后,需选择不检测规则类别,支持多选。不检测规则类别包括:XXS攻击、网站木马、其他类别攻击、SQL注入攻击、恶意爬虫、远程文件包含、本地文件包含、命令注入攻击。
- 所有内置规则:Web基础防护规则启用的所有防护规则。
- 按ID:按防护规则ID,配置不检测的模块。
- 非法请求:可对非法请求加白。
非法请求判定标准如下:
- 请求头中参数个数超过512。
- URL中参数个数超过2048。
- Content-Type:application/x-www-form-urlencoded,且请求体中参数个数超过8192。
不检测模块:Web基础防护模块
不检测规则类型:按ID
不检测规则ID:041046
规则描述
可选参数,设置该规则的备注信息。
不拦截SQL注入攻击
不检测字段
如果您只想忽略来源于某攻击事件下指定字段的攻击,可配置开启不检测字段开关,并配置不检测指定字段。完成后,WAF将不再拦截指定字段的攻击事件,且条件列表将作为非必选配置。
Params
全部
完成以上配置后,WAF会在拦截该防护事件的防护策略的全局白名单规则列表,自动生成一个全局白名单规则,支持查看、修改、删除已添加的规则。更多信息,请参见配置全局白名单规则对误报进行忽略.
步骤三:分析攻击日志
- 结合防护事件趋势图与TOP 10统计图表,分析防护域名整体攻击态势。
- 在防护事件列表处,可配置筛选条件过滤做攻击事件的详细分析。
- 例如:查询攻击源IP分析其攻击行为;查询防护域名并分析该域名的攻击态势。
- 结合防护事件详情中的防护规则描述、攻击载荷、应用组件、防护动作等信息分析详细攻击特征。用户可根据防护事件中的URL信息,进一步自查相关防护域名是否使用相应的组件,排查相关组件是否存在相关漏洞。
除此之外,用户也可以对接云日志服务 LTS,排查WAF访问日志,进一步排查是否存在未拦截的攻击行为,结合请求行为与特征做进一步安全加固。更多信息,请参见通过LTS记录WAF全量日志。
步骤四:配置IP黑白名单规则
- 如果某IP存在持续性攻击行为,需对IP进行阻断,可添加IP黑名单规则,即规则“防护动作”配置为“拦截”。
- 如果某IP为正常业务使用,存在大量误报场景,难以通过单条防护事件进行误报消除,可添加IP白名单规则,即规则“防护动作”配置为“仅记录”、“放行”。
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,单击“防护事件”。
- 在“防护事件”列表,定位到目标防护事件,单击“操作”列的。
- 在“添加至黑白名单”对话框,将客户端IP添加到已有规则,或新创建黑白名单规则。创建黑白名单规则的参数说明请参见表3。
图2 添加至黑白名单
表3 参数说明 参数
参数说明
添加方式
- 选择已有规则:将客户端IP添加到对应防护域名下已有的黑白名单规则中。
- 新建规则:新在对应防护域名下创建黑白名单规则,并添加客户端IP。
规则名称
- 添加方式选择“选择已有规则”时,在下拉框中选择规则名称 。
- 添加方式选择“新建规则”时,自定义黑白名单规则的名字。
IP/IP段或地址组
添加IP/IP段或地址组。仅“添加方式”选择“新建规则”时,需要配置此参数。
- IP/IP段:直接将客户端IP添加到黑白名单中。
- 地址组:将客户端IP添加到黑白名单规则关联的地址组中
选择地址组后,还需要选择已有地址组或新建地址组。创建新的地址组,详细操作请参见添加黑白名单IP地址组。
防护动作
选择要执行的防护动作。仅“添加方式”选择“新建规则”时,需要配置此参数。
- 拦截:IP地址或IP地址段设置的是黑名单且需要拦截,则选择“拦截”。
- 放行:IP地址或IP地址段设置的是白名单,则选择“放行”。
- 仅记录:需要观察的IP地址或IP地址段,可选择“仅记录”。
攻击惩罚
当“防护动作”设置为“拦截”时,您可以设置攻击惩罚规则。设置攻击惩罚后,当访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据惩罚规则设置的拦截时长来封禁访问者。关于攻击惩罚规则的相关描述,请参见配置攻击惩罚。
规则描述
设置该规则的备注信息。
完成以上配置后,WAF将根据黑白名单规则拦截或放行客户端IP。