小皮面板WAF误拦截正常访问如何调整规则
学完这篇,你可以定位小皮面板 WAF 是哪条规则误拦了正常访问,并通过 URL 白名单、IP 白名单或关闭单条规则精确放行,同时不把整站防护关掉。下面以 phpStudy V8.1.1.3 Windows 版(小皮面板)为例,Nginx/Apache 环境通用。
第一步:打开 WAF 并找到误拦截记录
这一步要拿到“被拦的 URL、来源 IP、规则 ID”,有了它才能精确调整。打开 phpStudy 主界面,点左侧“网站”,在站点列表右侧点“管理”,下拉菜单里选“WAF防火墙”。弹窗左侧点“拦截日志”,时间范围选“最近1小时”或“今天”,找到你刚才访问失败的记录,点右侧“详情”。重点看三项:拦截 URL、客户端 IP、规则 ID。例如 URL 是 /api/notify,规则 ID 是 10001,说明不是 IP 被封,而是某条规则命中。
注意:不要只看浏览器报错。浏览器可能只显示 403,真正原因在 WAF 拦截日志里。
第二步:临时切模式或关开关做对照
这一步用来确认“确实是 WAF 拦的”,不是程序本身报错。仍在“WAF防火墙”窗口,点左侧“防护设置”。如果“防护模式”当前是“严格”,先改成“正常”或“宽松”;如果急着验证,可把“防护开关”临时设为“关闭”,点右下角“保存”或“应用”。然后无痕浏览器再访问一次原 URL。访问恢复正常,就说明是 WAF 误拦。
注意:验证完马上把“防护开关”重新打开。公网服务器长期关闭 WAF,等于把 SQL 注入、XSS 扫描直接放进来。
第三步:把误拦 URL 加入白名单
这一步让指定路径完全绕过 WAF 检测,适合 API 回调、后台上传、支付通知这类固定入口。在“WAF防火墙”窗口点左侧“URL白名单”,点“添加”。填写:
- URL:
/api/notify或/admin/upload.php - 匹配方式:优先选“精确匹配”;如果带参数,选“包含”或“正则”
- 动作:放行
点“保存”,再点“应用”。
注意:URL 不要填
/,那等于整站放行。也不要填过短的关键词,比如只写api,可能把/api/delete也放过去。
第四步:把固定来源 IP 加入白名单
这一步适合你自己的办公 IP、公司出口 IP、CDN 回源 IP。点左侧“IP白名单”,点“添加”,填单个 IP,例如 203.0.113.5;整个网段可填 203.0.113.0/24。备注写“公司办公 IP”,保存并应用。之后这个 IP 的请求不再触发 WAF 规则。
注意:如果站点前面套了 CDN,WAF 日志里的客户端 IP 可能是 CDN 回源 IP。这时要加 CDN 回源 IP 段,而不是你本机公网 IP,否则白名单不生效。
第五步:只禁用误报的具体规则
这一步最推荐:保留 WAF,只关掉误报那一条。点左侧“规则管理”或“规则设置”,在搜索框输入第二步记下的规则 ID,例如 10001。找到后,把该规则右侧“启用”取消,或者把“规则等级”从“高”调到“中/低”。点“保存”,再点“应用”。这样只放行误报规则,其他防护照常工作。
注意:关规则前先确认规则 ID 和日志里一致。不同小版本规则编号可能不同,别凭猜测关一片规则。
第六步:应用规则并重启服务
WAF 保存后不一定立即生效。回到 phpStudy 主界面,点“首页”,在“启动/停止”区域点“重启”按钮,重启 Nginx 或 Apache。命令行方式:Nginx 可执行 nginx.exe -s reload,Apache 可执行 httpd -k restart。结果:新白名单和规则状态加载完成。
第七步:复测并观察拦截日志
用无痕窗口或 curl -I "https://你的域名/api/notify" 访问原地址,正常应返回 200/302,而不是 403。再回到“WAF防火墙”->“拦截日志”,刷新列表,确认该 URL 不再新增拦截记录。若仍被拦,重复第一步,看是否命中了另一条规则,再按第五步处理。
小结
- 先看“拦截日志”,拿到 URL、IP、规则 ID,再动手改。
- 临时关 WAF 只用于验证,验证后立刻打开。
- 固定入口用“URL白名单”,固定来源用“IP白名单”。
- 最稳做法是只禁用误报的规则 ID,而不是关闭整个 WAF。
- 保存后点“应用”并重启 Nginx/Apache,复测拦截日志确认生效。
- 升级或重装小皮面板可能重置规则,建议记录关键规则 ID 和白名单。
原文链接:https://www.gj0.com/thread-862.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。