文档首页/ Web应用防火墙 WAF/ 最佳实践/ Web基础防护“拦截”模式应用最佳实践
更新时间:2026-02-02 GMT+08:00
分享

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基础防护规则

  1. 登录Web应用防火墙控制台
  2. 在控制台左上角,单击图标,选择区域或项目。
  3. (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
  4. 在左侧导航栏,单击“防护策略”
  5. 在防护策略列表,单击目标策略名称,进入目标策略的防护规则配置页面。

    您也可以在“网站设置”页面,单击目标域名“防护策略”列的“已开启防护项”后的数字,进入网站绑定的防护策略的规则配置页面。

  6. 单击“Web基础防护”配置框,确认已开启Web基础防护规则。

    :开启状态。

  7. 参考表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不再拦截正常业务请求。

  1. 登录Web应用防火墙控制台
  2. 在控制台左上角,单击图标,选择区域或项目。
  3. (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
  4. 在左侧导航栏,单击“防护事件”
  5. 查看指定防护域名、实例、时间范围的防护详情,详情请参见查看防护日志
  6. “防护事件”列表,定位到目标防护事件,单击“操作”列的“详情”,确认是否为误报事件。如是,单击“操作”列的“误报处理”
  7. “误报处理”对话框,处理误报事件。

    “误报处理”对话框默认关联了拦截该防护事件的策略名称、防护方式、防护域名、条件列表、不检测模块、不检测规则类型、不检测规则类别等信息,如果确认无误,可直接单击确认添加,将对应防护事件处理为误报事件,使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基础防护规则启用的所有防护规则。
    • 非法请求:可对非法请求加白。

      非法请求判定标准如下:

      • 请求头中参数个数超过512。
      • URL中参数个数超过2048。
      • Content-Type:application/x-www-form-urlencoded,且请求体中参数个数超过8192。

    不检测模块:Web基础防护模块

    不检测规则类型:按ID

    不检测规则ID:041046

    规则描述

    可选参数,设置该规则的备注信息。

    不拦截SQL注入攻击

    不检测字段

    如果您只想忽略来源于某攻击事件下指定字段的攻击,可配置开启不检测字段开关,并配置不检测指定字段。完成后,WAF将不再拦截指定字段的攻击事件,且条件列表将作为非必选配置。

    • 支持不检测的字段包括:Params、Cookie、Header、Body、Multipart。
    • 支持不检测全部字段或指定字段。
      • 全部字段:Params、Cookie、Header、Body、Multipart字段均支持。

        当字段配置为“全部”时,配置完成后,WAF将不再拦截该字段的所有攻击事件。

      • 指定字段:仅Params、Cookie、Header字段支持。选择“指定字段”时,需填写子字段。
    • 当选择“Cookie”字段时,“防护域名”可以为空。

    Params

    全部

    完成以上配置后,WAF会在拦截该防护事件的防护策略的全局白名单规则列表,自动生成一个全局白名单规则,支持查看、修改、删除已添加的规则。更多信息,请参见配置全局白名单规则对误报进行忽略.

步骤三:分析攻击日志

防护事件页面,分析近30天的攻击详情。
  • 结合防护事件趋势图与TOP 10统计图表,分析防护域名整体攻击态势。
  • 在防护事件列表处,可配置筛选条件过滤做攻击事件的详细分析。
    • 例如:查询攻击源IP分析其攻击行为;查询防护域名并分析该域名的攻击态势。
    • 结合防护事件详情中的防护规则描述、攻击载荷、应用组件、防护动作等信息分析详细攻击特征。用户可根据防护事件中的URL信息,进一步自查相关防护域名是否使用相应的组件,排查相关组件是否存在相关漏洞。

除此之外,用户也可以对接云日志服务 LTS,排查WAF访问日志,进一步排查是否存在未拦截的攻击行为,结合请求行为与特征做进一步安全加固。更多信息,请参见通过LTS记录WAF全量日志

步骤四:配置IP黑白名单规则

  • 如果某IP存在持续性攻击行为,需对IP进行阻断,可添加IP黑名单规则,即规则“防护动作”配置为“拦截”
  • 如果某IP为正常业务使用,存在大量误报场景,难以通过单条防护事件进行误报消除,可添加IP白名单规则,即规则“防护动作”配置为“仅记录”“放行”
  1. 登录Web应用防火墙控制台
  2. 在控制台左上角,单击图标,选择区域或项目。
  3. (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
  4. 在左侧导航栏,单击“防护事件”
  5. “防护事件”列表,定位到目标防护事件,单击“操作”列的更多 > 添加至黑白名单
  6. “添加至黑白名单”对话框,将客户端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。

相关文档