1.
概述与准备工作
说明问题范围与准备:确认是WAF对合法PHP请求误判(403/406/502等),准备好被拦截的完整请求(浏览器DevTools或抓包工具抓取),登录阿里云控制台并确保有域名管理权限。
2.
定位误判请求与获取日志
步骤:登录WAF控制台 -> 安全防护 -> 攻击日志/防护日志,按时间/IP/URI过滤。复制被拦截记录的RequestId、规则ID、触发规则名称及详细报文(请求方法、Headers、Body)。若日志不全,开启“完整请求日志”或使用接入日志代理收集。
3.
重现与回放验证
步骤:在攻击日志中选中该记录,点击“请求回放”(或使用curl按原始报文回放到测试域名)。若控制台无回放功能,使用抓到的请求在测试环境或临时域名上重放;观察控制台返回的触发规则和剩余信息以确认是哪个规则误判。
4.
分析常见PHP误判类型
列举与分析:常见误判包括上传文件带有”等;对照触发的规则ID判断是XSS、SQLi、文件包含还是自定义签名误判。
5.
临时快速恢复(紧急放行)
操作步骤:WAF控制台 -> 域名管理 -> 点击目标域名 -> 防护策略 -> 自定义规则 -> 新建规则;选择“放行”动作,条件使用精确URI或IP+URI组合,优先级调到最高并设置短时生效(例如30分钟)。保存并立即回放验证请求可通过。
6.
针对规则ID精确例外处理
操作步骤:若误判由托管规则或规则ID导致,进入“托管规则/策略管理”,找到对应规则ID,选择“添加例外/规则豁免”,设置生效范围(指定域名/路径/参数),并记录变更理由与审批人,避免泛放行。
7.
创建长期安全的自定义规则
步骤:分析触发条件后创建定制化放行或拦截规则:选择条件类型(URI、参数名、Header、Cookie、请求方法、规则ID),用正则精确匹配,设置放行或监控模式;先在“观察/仅记录”模式跑一段时间,再切换为生效。
8.
回滚、审计与监控
步骤:对临时放行设置自动到期或在事件解决后手动删除;在WAF控制台审计改动记录;开启告警(攻击日志阈值、放行次数异常);保留原始请求报文和变更记录便于事后复盘。
9.
测试用例与防止复发
操作:建立回归测试集合(包含被误判的请求样本),在每次策略变更后执行回放;对开发团队提供编码建议(如对特殊参数做白名单编码或分段上传);必要时调整应用端输入检查以减少触发WAF签名的概率。
10.
问:发生PHP请求被WAF误判时第一步应该做什么?
11. 回答:第一步是收集完整请求与WAF日志:在浏览器或抓包工具中导出被拦截的原始请求,并在WAF控制台的攻击/防护日志中定位对应记录,记录RequestId、规则ID与返回码以便回放与定位。
12.
问:如何在最短时间内恢复业务可用性?
13. 回答:在控制台快速创建高优先级的“放行”自定义规则,条件精确到URI或客户端IP,设置短时生效;同时记录操作并在恢复后尽快用更精确的规则替代。
14.
问:如何避免放行后留下安全隐患?
15. 回答:不要全局关闭规则或直接绕过WAF;使用最小范围的放行(指定路径/参数/IP),先用“观察模式”验证,保留日志与审批记录,回归测试通过后再正式生效。