换了 IP,403 还在

客户站点 403,我第一反应是 IP 被封,换了台机器,还是 403。又换了 CDN,依旧。

后来看到错误页的样式,是 WAF 的拦截页。从头到尾跟 IP 无关。那次我在 IP 上浪费了半天。

403 是谁给的

它一定来自某一层服务,不是网络。可能是应用、Nginx、WAF、CDN。

看响应内容最直接:防护产品有默认拦截页,Nginx 有目录禁止页,框架有自己的错误页。状态码一样,含义可能完全不同。403 的响应体一般不大,几行字,恰恰是这几行字最有信息量。拦截页上的品牌名往往直接告诉你产品,请求 ID 也能用来查日志,拿这个 ID 去找安全团队最快。

用宝塔拨测的网站测速先看状态码和响应头,再看分段耗时。403 通常 TTFB 很短,因为请求在某一层被快速拒绝,没有走到业务逻辑。

按范围判断

所有节点 403,是全局策略。

只有某个地区 403,偏区域封禁或者 CDN 配置。

只有某家运营商 403,偏来源 IP 段被封。

先把范围定下来,再去找对应的配置。范围错了,改的地方一定不对。分组之后,答案就接近了。

常见几种拒绝

目录没有默认索引文件,服务器拒绝列目录。

文件权限不对,Web 用户读不到。

应用要求登录,未登录直接 403。

WAF 规则命中,比如 UA、参数、访问频率。

CDN 开了地区限制或防盗链。还有一种:请求方法不被允许,那是 405,别混。

怎么改

从响应头里找 Server 和拦截标识,确认是哪一层。

是源站,就看目录、权限、伪静态和鉴权配置,权限问题在 error log 里有明确记录,看日志比猜快。

是 WAF,就看规则命中的具体条件,别整个关掉,WAF 看拦截日志,源站看访问日志,对不上时间就白查,时区要统一。

是 CDN,就看地区、Referer、UA 的配置。CDN 侧的限制有时不写在文档里,找技术支持确认更快,别自己猜规则。

只改确认的那一处,改之前先备份配置,改完记录改了哪条规则,同步到文档,团队都能看到,下次少踩坑。

复测

用同一批节点复测,确认原来 403 的地区恢复正常。

同时看别的路径有没有被打坏。放宽规则容易,收回来难,改的时候一定留点余地,别为了救一个页面把整个防护拆了。

连测两三次,稳定通过再收工,别只看着自己那一台浏览器,多地区的结果才算数。