当发现接入Web应用防火墙的域名出现访问异常时,您可以使用本文提供的工具或者思路确定可能存在的问题。


waf,排错

工具

  • Chrome浏览器-开发者工具:Chrome浏览器自带开发者工具,可以用来查看页面元素的加载情况。按F12打开工具,切换至Network标签。
  • ping:Windows和Linux操作系统自带的网络测试工具,可以用来分析和判定网络故障。Windows系统按Win+R,输入CMD打开工具。用法:ping 域名/IP
  • traceroute(Linux)/tracert(Windows):链路追踪工具,可以检测在哪一跳发生丢包。Windows系统按CTRL+R,输入cmd打开工具。用法:tracert -d 域名/IP
  • nslookup:用于检测域名解析的工具,可以检查域名解析是否生效。Windows系统按CTRL+R,输入cmd打开工具。用法:nslookup 域名
  • 17测网站:用于探测全国访问质量、DNS解析和丢包情况。

排查方法

  • 检查源站是否正常
    参照以下步骤旁路Web应用防火墙,排查是否为源站问题。
    1. 禁用源站上的安全组、黑白名单、防火墙、安全狗、云锁等设备,防止WAF回源IP被拉入黑名单。
    2. 修改本地hosts文件,将该域名指向对应的ECS/SLB/服务器公网IP(即在WAF上填写的源站IP地址)。
    3. 查看不经过Web应用防火墙是否能复现问题。
  • 检查是否为误拦截
    参照以下步骤关闭拦截功能,查看是否是误拦截。
    1. 登录云盾Web应用防火墙控制台
    2. 前往管理 > 网站配置页面。
    3. 找到有问题的域名,单击其操作列下的防护配置
    4. 关闭Web应用攻击防护,查看问题是否继续。如果问题消失,
    5. 如果还有问题,关闭CC安全防护,查看问题是否继续。如果问题消失,

常见Web应用防火墙问题

如果发现不经过Web应用防火墙问题会消失,而接入Web应用防火墙后,问题稳定复现,您可以按照以下方式排查。

  • 访问被阻断(返回405)

    现象:出现405阻断页面,或者HTTP返回码为405。

    原因:出现405阻断页面可能是由于被精准访问控制阻断或者被Web应用攻击防护规则阻断。

    解决方案:
    1. 登录云盾Web应用防火墙控制台
    2. 前往管理 > 网站配置页面。
    3. 找到有问题的域名,单击其操作列下的防护配置
    4. 关闭精准访问控制,查看是否还有405页面。如果不再出现,即为您所配置的规则误拦截,需要您找到对应规则并将其删除。
    5. 如果关闭精准访问控制开关后问题仍然存在,关闭Web应用攻击防护,查看问题是否继续。如果问题消失,
  • 连接被重置(返回302)

    现象:某些IP在访问网站显示连接被重置,Response返回302。同时,请求被set-cookie。

    原因:IP访问触发了CC防御规则。

    解决方案:
    1. 登录云盾Web应用防火墙控制台
    2. 前往管理 > 网站配置页面。
    3. 找到有问题的域名,单击其操作列下的防护配置
    4. 关闭CC安全防护,再次访问看是否恢复。如果关闭防护后恢复正常,说明是CC防护规则误拦截。
  • 客户端访问HTTPS异常

    现象:HTTPS请求返回证书为www.notexist.com

    原因:Web防火墙需要浏览器支持SNI。一般苹果系统原生支持SNI。而Windows、Android系统需要做SNI兼容。

    解决方案:请参见SNI 兼容性导致 HTTPS 访问异常(服务器证书不可信)

  • 访问出现白屏(返回502)

    现象:网站显示白屏,同时HTTP返回码是502。

    原因:当源站(指ECS、SLB或服务器)出现丢包或者不可达的时候,Web应用防火墙会返回白屏。

    解决方案:
    • 检查源站是否有黑名单、iptables、防火墙、安全狗、云锁等安全软件或策略。如果有,停用或卸载相关服务,并清空黑名单,查看问题是否消失。
    • 参照排查方法,绕过WAF去访问,检查是否正常。如果仍然无法正常访问,可检查源站的进程、CPU、内存、Web日志等是否有异常。
  • 域名ping不通,WAF被DDoS,进入了黑洞

    现象:域名ping不通。同时,收到短信提示,WAF被DDoS,进入了黑洞。

    原因:流量DDoS不在Web应用防火墙(WAF)防护范围内。

    解决方案:启用高防IP,抵御DDoS攻击。

  • 后端多台服务器负载不均

    原因:Web防火墙使用四层IP哈希。因此,当高防串联Web应用防火墙时或当SLB使用四层转发时,ECS可能出现负载不均。

    解决方案:Web应用防火墙和ECS直接使用SLB负载均衡,即使用7层转发,并打开cookie会话保持或负载均衡。

  • 微信或支付宝回调失败

    现象:微信或支付宝回调失败。

    原因:可能是高频访问被CC拦截;或者使用了HTTPS方式回调,且微信和支付宝不支持SNI。关于SNI,请参见SNI 兼容性导致 HTTPS 访问异常(服务器证书不可信)

    解决方案:
    • CC安全防护问题
      1. 登录云盾Web应用防火墙控制台
      2. 前往管理 > 网站配置页面。
      3. 找到有问题的域名,单击其操作列下的防护配置
      4. 关闭CC安全防护,再次访问看是否恢复。如果关闭防护后恢复正常,说明是CC防护规则误拦截。
    • SNI问题

      设置让微信或支付宝直接调用ECS或者SLB IP,不要经过Web应用防火墙。