
# 配置网页防篡改规则避免静态网页被篡改
网站接入WAF后，您可以通过设置网页防篡改规则，锁定需要保护的网站页面（例如敏感页面）。当被锁定的页面在收到请求时，返回已设置的缓存页面，预防源站页面内容被恶意篡改。
#### 工作原理
- 当WAF接收到正常的访问请求时，直接将缓存的网页返回给Web访问者，加速请求响应。
- 如果攻击者篡改了网站的静态网页，WAF将缓存的未被篡改的网页返回给Web访问者，保证Web访问者访问的是正确的页面。
- WAF将对页面路径下的所有相关资源进行防护。例如，对"www.example.com/index.html"静态页面配置了网页防篡改规则，则WAF将防护"/index.html"的网页以及这个网页关联的相关资源。 即如果请求中Referer请求头的值中的URL路径与您配置的防篡改路径一致，如"/index.html" ，则该请求命中的资源（结尾为png、jpg、 jpeg、gif、bmp、css、js的所有资源）也会同时被缓存下来。
  
- 同时，WAF支持缓存自定义的Header字段。在网页防篡改页面上方，单击"修改字段"可配置需要通过WAF缓存的Header字段。
 
#### 应用场景
- 加速请求的响应 配置网页防篡改规则后，Web应用防火墙将对服务端的静态网页进行缓存。当Web应用防火墙接收到Web访问者的请求时，直接将缓存的网页返回给Web访问者。
  
- 网页防篡改 攻击者将服务端的静态网页篡改后，Web应用防火墙将缓存的未被篡改的网页返回给Web访问者，以保证Web访问者访问的是正确的页面。
  Web应用防火墙具有如下功能：随机抽取Web访问者的一个请求，将请求的页面与服务端页面进行对比，如果发现页面被篡改，您将接收到告警通知（通知方式由您设置），告警通知的设置请参考[开启告警通知](https://support.huaweicloud.com/usermanual-waf/waf_01_0019.html)。
  
 
#### 约束条件
| 类别        | 约束说明                                                                                                                                                                                                                                                                                                                        |
|:---|:---|
| 接入方式和版本限制 | - **云模式-CNAME接入** ：仅**标准版** 、**专业版** 、**企业版**支持该功能。  - **云模式-ELB接入**：不支持该功能。  - **独享模式接入**：支持该功能。   |
| 源站限制      | **本地IDC部署的网站**：不支持该功能。                                                                                                                                                                                                                                                                                                      |
| 生效条件      | 源站响应中需包括Content-Type响应头，否则可能导致WAF无法缓存源站响应。                                                                                                                                                                                                                                                                                  |
| 规则生效时间    | 添加或修改防护规则后，规则生效需要等待几分钟。规则生效后，您可以在"防护事件"页面，[查看防护效果](https://support.huaweicloud.com/usermanual-waf/waf_01_0156.html)。                                                                                                                                                                                                        |
   
#### 前提条件
已添加防护网站或已[新增防护策略](https://support.huaweicloud.com/usermanual-waf/waf_01_0074.html#waf_01_0074__section5458145019310)。
- 云模式-CNAME接入的接入方式参见[通过云模式-CNAME将网站接入WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0324.html)章节。
- 独享模式的接入方式参见[通过独享模式将网站接入WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)章节。
 
#### 配置网页防篡改规则
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"防护策略 \> WAF核心防护"。
5. 在防护策略列表，单击目标策略名称，进入目标策略的防护规则配置页面。 
   您也可以在"资产管理 \> 防护对象"页面，单击目标域名"防护策略"列的"已开启防护项"后的数字，进入网站绑定的防护策略的规则配置页面。
   
   
6. 单击"网页防篡改"配置框，确认已开启网页防篡改防护规则。 
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001761737873.png)：开启状态。
   
   
7. 在"网页防篡改"规则配置列表的左上方，单击"添加规则"。
8. 在弹出的对话框中，添加网页防篡改规则，参数说明如[表1]所示。
   
   图1添加网页防篡改规则   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002156897613.png "点击放大")
    表1参数说明 
   | 参数   | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 取值样例            |
   |:---|:---|:---|
   | 域名   | 设置防篡改的域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | www.example.com |
   | 路径   | 设置防篡改的URL链接中的路径。 - URL为用来定义网页的地址，其基本格式为"协议名://域名或IP地址\[:端口号\]/\[路径名/.../文件名\]"。 例如，URL为"http://www.example.com/admin"，则"路径"设置为"/admin"。   - 路径填写时，需注意： - 路径不包含域名。  - 路径不支持正则表达。  - 路径不能含有连续的多条斜线的配置，例如如果路径为"///admin"，WAF引擎会将"///"转为"/"。     | /admin          |
   | 规则描述 | 设置该规则的备注信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | --              |
      
   
   
9. 单击"确定"，添加的网页防篡改规则展示在网页防篡改规则列表中。 
   如果被防护页面进行了内容修改，必须单击待更新的网页防篡改规则所在行的"更新缓存"来更新缓存，如果您在页面更新后未更新缓存，WAF将始终返回最近一次缓存的页面内容。
   如果要生效该防护规则，需确认防护规则所属防护策略已[绑定防护域名](https://support.huaweicloud.com/usermanual-waf/waf_01_0074.html)，即绑定策略生效目标。一条防护策略可以适用于多个防护域名，但一个防护域名只能绑定一个防护策略。
   完成以上配置后，您还可以执行以下操作：
   - **更新缓存**：如果被防护页面进行了内容修改，必须单击待更新的网页防篡改规则所在行的"更新缓存"来更新缓存，如果您在页面更新后未更新缓存，WAF将始终返回最近一次缓存的页面内容。
   
   - **查看规则状态**：在防护规则列表，查看已添加的规则。此时，"规则状态"默认为"已开启"。
   
   - **关闭规则**：如果您暂时不想使该规则生效，可在目标规则"操作"列，单击"关闭"。
   
   - **删除或修改规则**：您也可以在目标规则"操作"列，单击"删除"或"修改"，删除或修改已添加的防护规则。
   
   - **验证防护效果** ：
     1. 在浏览器中访问"http://www.example.com/admin"页面，显示初始页面。
     
     2. 模拟篡改"http://www.example.com/admin"网页。
     
     3. 在浏览器中访问"http://www.example.com/admin"页面，显示的是未被篡改的初始页面。
     
     4. 在"防护事件"页面，查看防护日志。
      
   
   
   
   
 
#### 配置示例
您可以参考以下配置示例，配置网页防篡改规则。
#### 静态页面防篡改
如果需要防止"/admin"静态页面被篡改，您可以参照以下操作步骤验证防护效果。
1. 单击"网页防篡改"配置框，确认已开启网页防篡改防护规则。 
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001761737873.png)：开启状态。
   
   
2. 添加一条网页防篡改规则。 
   图2添加网页防篡改规则   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002156897613.png "点击放大")
   
   
3. 模拟篡改"http://www.example.com/admin"网页。
4. 在浏览器中访问"http://www.example.com/admin"， 等待WAF缓存静态页面。
5. 在浏览器中访问篡改后的页面。 
   此时，显示的是被篡改前的页面。
   
   
 
#### 所有静态资源防篡改
如果您想防护网站所有静态资源（即网站根目录"/"下的png、jpg、 jpeg、gif、bmp、css、js等文件，及html文件"index.html"）不被篡改，您可以参照以下操作步骤验证防护效果。
1. 单击"网页防篡改"配置框，确认已开启网页防篡改防护规则。 
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001761737873.png)：开启状态。
   
   
2. 添加一条"路径"为"/"的网页防篡改规则，防护png、jpg、 jpeg、gif、bmp、css、js等文件不被篡改。 
   图3添加网页防篡改规则(1)   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002450517501.png "点击放大")
   
   
3. 添加一条"路径"为html文件绝对路径"/index.html"的网页防篡改规则，防护html文件不被篡改。 
   图4添加网页防篡改规则(2)   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002450597497.png "点击放大")
   
   
4. 模拟篡改"http://www.example.com/"网页。
5. 在浏览器中访问"http://www.example.com/"， 等待WAF缓存静态页面。
6. 在浏览器中访问篡改后的页面。 
   此时，显示的是被篡改前的页面。
   
   
#### 常见问题
[开启网页防篡改后，为什么刷新页面失败？](https://support.huaweicloud.com/waf_faq/waf_01_0355.html)
