# 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应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"防护策略 \> WAF核心防护"。
5. 在防护策略列表，单击目标策略名称，进入目标策略的防护规则配置页面。 
   ![](https://support.huaweicloud.com/bestpractice-waf/public_sys-resources/note_3.0-zh-cn.png)
   您也可以在"网站设置"页面，单击目标域名"防护策略"列的"已开启防护项"后的数字，进入网站绑定的防护策略的规则配置页面。
   
   
6. 单击"Web基础防护"配置框，确认已开启Web基础防护规则。 
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002533231323.png)：开启状态。
   
   
7. 参考[表1]，配置Web基础防护规则。
   
   图1配置防护规则   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002501471282.png "点击放大")
    表1Web基础防护参数说明 
   | 参数                                               || 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 建议取值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|---|:---|:---|
   | **常规检测** | **功能开关** | 默认开启，支持防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。其中，SQL注入攻击主要基于语义进行检测。 **此处建议保持默认配置，选择** "开启"**常规检测。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002501311440.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | **常规检测** | **防护等级** | 根据实际业务，选择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解密检测"，以防攻击者利用已泄露的密钥构造攻击。    **此处可根据实际业务进行配置。如无特殊检测要求，建议保持默认配置，** "关闭"**上述检测项。** | - **深度检测** ：![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002533111287.png "点击放大")  - **header全检测** ：![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002501471284.png "点击放大")  - **Shiro解密检测** ：![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002501311442.png "点击放大")   |
   | **Webshell检测**                                   || 开启或关闭Webshell检测开关。开启后，可防护通过上传接口植入的网页木马。**HTTP2报文不支持Webshell检测。** **此处可根据实际业务进行配置。如无特殊检测要求，建议保持默认配置，** "关闭"**Webshell检测。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002533111289.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | **防护动作**                                          || 选择触发Web基础防护规则后，要执行的处置动作： - **仅记录**（默认）：请求触发规则后，WAF只记录不拦截。  - **拦截** ：请求触发规则后，WAF记录并拦截该请求。 将防护规则修改为拦截模式前，请先查看历史日志记录，确认没有正常请求触发防护规则时，再进行拦截。 "防护动作"配置为"拦截"时，可[配置攻击惩罚](https://support.huaweicloud.com/usermanual-waf/waf_01_0271.html)。配置并选择攻击惩罚后，如果访问者的IP、Cookie或Params恶意请求被拦截时，WAF将根据攻击惩罚设置的拦截时长来封禁访问者。    **此处建议配置** "防护动作"**为** "拦截"**。**                                                                                                                                                                                                                                                                                                                           | **拦截**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      
   
   
 
#### 步骤二：处理误报
开启"拦截"模式后，如果业务正常请求命中Web基础防护规则，则该请求会被WAF拦截，导致网站访问显示异常。在例行运营中，可持续分析攻击日志，并通过误报处理，使WAF不再拦截正常业务请求。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"安全运营 \> 防护事件"。
5. 查看指定防护域名、实例、时间范围的防护详情，详情请参见[查看防护日志](https://support.huaweicloud.com/usermanual-waf/waf_01_0156.html#section2)。
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组条件时，本条规则即生效。   条件设置参数说明如下： - **字段** ：详细说明，请参见[条件字段说明](https://support.huaweicloud.com/usermanual-waf/waf_01_3271.html)。  - **子字段** ：当"字段"选择"IPv4"、"IPv6"、"Params"、"Cookie"、"Header"或"Response Header"时，请根据实际使用需求配置子字段。子字段的长度不能超过2048字符。 当"字段"选择"Response Header"或者"Header"，且"子字段"非"所有子字段"、"任意子字段"时，支持"子字段大小写敏感"。   - **逻辑**：在"逻辑"下拉列表中选择需要的逻辑关系。  - **内容** ：输入或者选择条件匹配的内容。 当"逻辑"关系选择包含任意一个、不包含任意一个、等于任意一个、不等于任意一个、前缀为任意一个、前缀不为任意一个、后缀为任意一个、后缀不为任意一个时，需要选择[引用表](https://support.huaweicloud.com/usermanual-waf/waf_01_0081.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | "字段"为"路径" "逻辑"为"包含" "内容"为"/product"                                                                                                                                                                                                                                                                                                                          |
   | 不检测模块 | 选择要添加的全局白名单的模块。 - **所有检测模块**：通过WAF配置的其他所有的规则都不会生效，WAF将放行该域名下的所有请求流量。  - **Web基础防护模块** ：支持按规则类型设置不检测的Web基础防护模块，例如对某些规则ID或者事件类别进行忽略设置。例如，某URL不进行XSS的检查，可设置屏蔽规则，屏蔽XSS检查。 - **按ID** ：按防护规则ID，配置不检测的模块。 选择该项后，需添加**不检测规则ID**，多个ID以英文逗号（,）分隔。最多可输入100个ID。 输入规则ID后，单击Enter键，可查看已添加的规则ID、规则描述、危险等级信息。 您也可以直接单击规则ID"操作"列的"误报处理"，设置"不检测规则类型"为"按ID"后，单击"确认添加"，将该规则ID加入全局白名单。   - **按类别** ：按攻击事件类别，配置不检测的模块。一个类别会包含一个或者多个规则ID。 选择该项后，需选择**不检测规则类别，** 支持多选。不检测规则类别包括：**XSS攻击** 、**网站木马** 、**其他类别攻击** 、**SQL注入攻击** 、**恶意爬虫** 、**远程文件包含** 、**本地文件包含** 、**命令注入攻击**。   - **所有内置规则** ：[Web基础防护规则](https://support.huaweicloud.com/usermanual-waf/waf_01_0008.html)启用的所有防护规则。    - **非法请求** ：可对非法请求加白。 非法请求判定标准如下： - 请求头中参数个数超过512。  - URL中参数个数超过2048。  - Content-Type:application/x-www-form-urlencoded，且请求体中参数个数超过8192。     | 不检测模块：Web基础防护模块 不检测规则类型：按ID 不检测规则ID：041046                                                                                                                                                                                                                                                                                                                      |
   | 规则描述   | 可选参数，设置该规则的备注信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 不拦截SQL注入攻击                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 不检测字段  | "不检测模块"选择"Web基础防护模块"时，如果您只想忽略来源于某攻击事件下指定字段的攻击，可配置开启不检测字段开关，并配置不检测指定字段。完成后，WAF将不再拦截指定字段的攻击事件，且条件列表将作为非必选配置。 - 支持不检测的字段包括：Params、Cookie、Header、Body、Multipart。  - 支持不检测全部字段或指定字段。 - 全部字段：Params、Cookie、Header、Body、Multipart字段均支持。 当字段配置为"全部"时，配置完成后，WAF将不再拦截该字段的所有攻击事件。   - 指定字段：仅Params、Cookie、Header字段支持。选择"指定字段"时，需填写子字段。    - 当选择"Cookie"字段时，"防护域名"可以为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Params 全部                                                                                                                                                                                                                                                                                                                                                                                                               |
      
   完成以上配置后，WAF会在拦截该防护事件的防护策略的全局白名单规则列表，自动生成一个全局白名单规则，支持查看、修改、删除已添加的规则。更多信息，请参见[配置全局白名单规则对误报进行忽略](https://support.huaweicloud.com/usermanual-waf/waf_01_0016.html).
   
   
 
#### 步骤三：分析攻击日志
在[防护事件](https://support.huaweicloud.com/usermanual-waf/waf_01_0156.html)页面，分析近30天的攻击详情。
- 结合防护事件趋势图与TOP 10统计图表，分析防护域名整体攻击态势。
- 在防护事件列表处，可配置筛选条件过滤做攻击事件的详细分析。
  - 例如：查询攻击源IP分析其攻击行为；查询防护域名并分析该域名的攻击态势。
  
  - 结合防护事件详情中的防护规则描述、攻击载荷、应用组件、防护动作等信息分析详细攻击特征。用户可根据防护事件中的URL信息，进一步自查相关防护域名是否使用相应的组件，排查相关组件是否存在相关漏洞。
   
 
除此之外，用户也可以对接云日志服务 LTS，排查WAF访问日志，进一步排查是否存在未拦截的攻击行为，结合请求行为与特征做进一步安全加固。更多信息，请参见[通过LTS记录WAF全量日志](https://support.huaweicloud.com/usermanual-waf/waf_01_0172.html)。
#### 步骤四：配置IP黑白名单规则
- 如果某IP存在持续性攻击行为，需对IP进行阻断，可添加IP黑名单规则，即规则"防护动作"配置为"拦截"。
- 如果某IP为正常业务使用，存在大量误报场景，难以通过单条防护事件进行误报消除，可添加IP白名单规则，即规则"防护动作"配置为"仅记录"、"放行"。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"安全运营 \> 防护事件"。
5. 在"防护事件"列表，定位到目标防护事件，单击"操作"列的"更多 \> 添加至黑白名单"。
6. 在"添加至黑白名单"对话框，将客户端IP添加到已有规则，或新创建黑白名单规则。创建黑白名单规则的参数说明请参见[表3]。
   
   图2添加至黑白名单   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002533300291.png "点击放大")
    表3参数说明 
   | 参数          | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | 添加方式      | - **选择已有规则**：将客户端IP添加到对应防护域名下已有的黑白名单规则中。  - **新建规则**：新在对应防护域名下创建黑白名单规则，并添加客户端IP。                                                                                                                                                                                                                                         |
   | 规则名称       | - 添加方式选择"选择已有规则"时，在下拉框中选择规则名称 。  - 添加方式选择"新建规则"时，自定义黑白名单规则的名字。                                                                                                                                                                                                                                                           |
   | IP/IP段或地址组 | 添加IP/IP段或地址组。仅"添加方式"选择"新建规则"时，需要配置此参数。 - **IP/IP段**：直接将客户端IP添加到黑白名单中。  - **地址组** ：将客户端IP添加到黑白名单规则关联的地址组中 选择地址组后，还需要选择已有地址组或新建地址组。创建新的地址组，详细操作请参见[添加黑白名单IP地址组](https://support.huaweicloud.com/usermanual-waf/waf_01_0357.html)。                                              |
   | 防护动作      | 选择要执行的防护动作。仅"添加方式"选择"新建规则"时，需要配置此参数。 - **拦截**：IP地址或IP地址段设置的是黑名单且需要拦截，则选择"拦截"。  - **放行**：IP地址或IP地址段设置的是白名单，则选择"放行"。  - **仅记录**：需要观察的IP地址或IP地址段，可选择"仅记录"。   |
   | 攻击惩罚      | 当"防护动作"设置为"拦截"时，您可以设置攻击惩罚规则。设置攻击惩罚后，当访问者的IP、Cookie或Params恶意请求被拦截时，WAF将根据惩罚规则设置的拦截时长来封禁访问者。关于攻击惩罚规则的相关描述，请参见[配置攻击惩罚](https://support.huaweicloud.com/usermanual-waf/waf_01_0271.html)。                                                                                                                                                                                                                                                                                                                                                                |
   | 规则描述       | 设置该规则的备注信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      
   完成以上配置后，WAF将根据黑白名单规则拦截或放行客户端IP。
   
   
 
