文档首页/ Web应用防火墙 WAF/ 最佳实践/ 使用Postman工具模拟业务验证全局白名单规则
更新时间:2024-12-19 GMT+08:00

使用Postman工具模拟业务验证全局白名单规则

应用场景

当防护网站成功接入WAF后,您可以使用接口测试工具模拟用户发起各类HTTP(S)请求,以验证配置的WAF防护规则是否生效,即验证配置防护规则的防护效果。本实践以Postman工具为例,说明如何验证全局白名单规则。

应用示例

例如,您的业务部署在“/product”路径下,由于生态开发,针对参数ID存在用户提交脚本或富文本格式(Rich Text Format,RTF)文件的业务场景,为了确保业务正常运行,您需要对用户提交的内容进行误报屏蔽,以屏蔽误拦截的访问请求,提升WAF防护效果。

资源与成本规划

表1 资源和成本规划

资源

资源说明

每月费用

Web应用防火墙

云模式-标准版:

  • 计费模式:包年/包月
  • 域名数量:10个防护域名
  • QPS配额:2,000QPS业务请求
  • 支持带宽峰值:云内100Mbps/云外30Mbps

具体的计费方式及标准请参考计费说明

步骤一:购买云模式标准版

以购买WAF云模式标准版为例进行介绍。

  1. 登录华为云管理控制台
  2. 在控制台页面中选择安全与合规 > Web应用防火墙 WAF,进入Web应用防火墙控制台。
  3. 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“云模式”

    • “区域”:根据防护业务的所在区域就近选择购买的WAF区域。
    • “版本规格”:选择“标准版”
    • “扩展包”“购买时长”:根据具体情况进行选择。

  4. 确认参数配置无误后,在页面右下角单击“立即购买”
  5. 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
  6. 进入“付款”页面,选择付款方式进行付款。

步骤二:将网站信息添加到WAF

此处以云模式-CNAME接入为例进行介绍。

  1. 在左侧导航树中,选择“网站设置”,进入网站设置列表。
  2. 在网站列表的左上角,单击“添加防护网站”
  3. 选择“云模式-CNAME接入”并单击“开始配置”
  4. 根据界面提示,配置网站信息,如表2所示。

    图1 基础信息配置
    表2 重点参数说明

    参数

    参数说明

    取值样例

    防护域名

    需要添加到WAF中防护的域名。

    • 域名已完成备案
    • 支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。

    www.example.com

    防护端口

    需要防护的域名对应的业务端口。

    标准端口

    服务器配置

    网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。

    • 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”“HTTPS”两种协议类型。
    • 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”“HTTPS”两种协议类型。
    • 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。
    • 源站端口:WAF转发客户端请求到服务器的业务端口。
    • 权重:负载均衡算法将按权重将请求分配给源站。

    对外协议:HTTP

    源站协议:HTTP

    源站地址:IPv4 XXX .XXX.1.1

    源站端口:80

    是否使用七层代理

    在WAF前是否使用了七层代理产品。

    根据实际情况进行选择。

  5. 单击“下一步”,根据界面提示,完成WAF回源IP加白本地验证修改域名DNS解析设置的操作。

    图2 添加域名完成

步骤三:使用Postman工具模拟业务验证全局白名单规则

  1. 确认“Web基础防护”为开启状态,且防护模式为“拦截”。同时,“常规检测”已开启。
  2. 下载并安装Postman。
  3. 在Postman上设置请求路径为“/product”,参数ID为普通测试脚本,防护网站的访问请求被拦截。

  4. 处理误报事件。

    1. 登录管理控制台
    2. 单击管理控制台左上角的,选择区域或项目。
    3. 单击页面左上方的,选择安全与合规 > Web应用防火墙 WAF
    4. 在左侧导航树中,选择“防护事件”,进入“防护事件”页面。
    5. 在防护事件页面,WAF拦截的防护事件命中了“XSS攻击”“010000”规则。
    6. 在该防护事件所在行的“操作”列中,单击“误报处理”
    7. 在弹出的“误报处理”对话框中,添加如图3所示全局白名单规则。
      图3 添加全局白名单规则
    8. 单击“确认添加”

      防护规则生效需要5分钟左右。

  5. 在Postman上再次设置请求路径为“/product”,参数ID为普通测试脚本,防护网站的访问请求还是被拦截。

  6. 参照步骤 4,查看防护事件,处理命中“XSS攻击”“110053”规则的误报防护事件。

    图4 添加全局白名单规则

  7. 在Postman上第三次设置请求路径为“/product”,参数ID为普通测试脚本,防护网站的访问请求仍被拦截。

  8. 参照步骤 4,查看防护事件,处理命中“XSS攻击”“110060”规则的误报防护事件。

    图5 添加全局白名单规则

  9. 在Postman上第四次设置请求路径为“/product”,参数ID为普通测试脚本。此时,防护网站的访问请求不再被拦截,说明所有全局白名单规则都已生效。

    同时,查看“防护事件”页面,防护事件列表也没有新增的XSS攻击防护事件。

  10. 在Postman上模拟攻击,验证设置的全局白名单规则不会影响WAF拦截其他参数的XSS攻击事件。

    1. 在Postman上设置请求路径为“/product”,参数item为普通测试脚本,防护网站的访问请求被拦截。

    2. 查看“防护事件”页面,WAF拦截参数item的XSS攻击事件。

  11. 在Postman上模拟攻击,验证设置的全局白名单规则不会影响WAF拦截其他路径的XSS攻击事件。

    1. 在Postman上设置请求路径为“/order”,参数ID为普通测试脚本,防护网站的访问请求被拦截。

    2. 查看“防护事件”页面,WAF拦截“URL”“/order”、参数ID的XSS攻击事件。