直接暴露 phpmyadmin_cdn 路径在 cloudflare 后极危险,因 waf 默认不识别该自定义路径,攻击者可绕过防护直击后台;须用边缘规则精确阻断,并配合源站 ip 限制与认证加固。
为什么直接暴露 phpmyadmin_cdn 节点在 cloudflare 后面很危险
Cloudflare WAF 本身不会自动识别或保护 phpMyAdmin_CDN 这类自定义路径——它只对真实请求路径生效,而你如果把 phpMyAdmin 部署在 /phpMyAdmin_CDN 下,又没做额外规则,攻击者只要知道这个路径,就能绕过默认防护直击后台。WAF 默认规则集(如 OWASP CRS)主要覆盖通用漏洞模式(SQLi、XSS),但不会主动封禁对 /phpMyAdmin_CDN/ 的访问,更不会校验请求是否来自合法管理端。
- 默认情况下,
phpMyAdmin_CDN仍会响应GET /phpMyAdmin_CDN/、POST /phpMyAdmin_CDN/index.php等请求 - 如果源站未设 IP 白名单或登录前强制跳转,WAF 只是“看着”这些请求流过去
- 常见错误现象:
403 Forbidden没出现,但日志里一堆/phpMyAdmin_CDN/index.php?token=...扫描流量
用 WAF 自定义规则精准拦截非授权 phpMyAdmin_CDN 访问
核心思路:不依赖源站逻辑,直接在 Cloudflare 边缘层用规则表达式(Expression-based Rules)阻断非法路径访问。关键不是“隐藏”,而是“明确拒绝”。
- 规则表达式必须匹配完整路径前缀:
http.request.uri.path matches "^/phpMyAdmin_CDN(/.*)?$" - 动作选
Block,不是Challenge(验证码对自动化扫描无效) - 作用域选
All zones或精确到该域名,避免漏掉子域名 - 不要加
ip.src eq XXX.XXX.XXX.XXX这类白名单条件——除非你真有固定运维出口 IP,否则容易锁死自己
示例规则(Cloudflare Dashboard → Security → WAF → Custom Rules):
http.request.uri.path matches "^/phpMyAdmin_CDN(/.*)?$" and not http.request.headers["cf-connecting-ip"] in {"192.0.2.1" "203.0.113.5"}
(注意:cf-connecting-ip 是真实客户端 IP,ip.src 是上一跳 IP,别混用)
phpMyAdmin_CDN 路径与源站配置不一致导致 WAF 失效的典型坑
WAF 规则是基于浏览器发来的原始 URL 判断的,但如果你在源站 Nginx/Apache 里做了 rewrite、alias 或 proxy_pass,实际到达源站的路径可能已改变,而 WAF 还在按旧路径拦——结果就是规则写了却没用。
- 常见错误场景:Nginx 把
/phpMyAdmin_CDN/反向代理到本地@#@#@#@#@#@#@#@#@#@0,但 WAF 规则仍写^/phpMyAdmin_CDN→ 正确,因为 WAF 看的是进来的 URI,不是转发后的 - 更隐蔽的坑:用了 Cloudflare Workers 做路径重写,但 Worker 在 WAF 规则之后执行 → WAF 拦的还是改写前的路径,而源站收到的是改写后的 → 表现为“规则生效但 phpMyAdmin 仍能访问”
- 兼容性提醒:Cloudflare 的
http.request.uri.path不带查询参数,也不解码,所以/phpMyAdmin_CDN%2Findex.php不会被^/phpMyAdmin_CDN匹配到,得补上http.request.uri contains "phpMyAdmin_CDN"作为兜底
别忘了源站层面的最小必要加固
WAF 是第一道过滤网,但不能替代源站基本防护。尤其当攻击者用合法 UA、慢速请求、或从被信任的 CDN IP 发起时,WAF 规则可能放行。
- 确保 phpMyAdmin 源站配置了
$cfg['Servers'][$i]['auth_type'] = 'cookie',禁用config认证方式 - 在 Web 服务器层(Nginx/Apache)加一层基础限制:只允许特定路径下访问,例如
location ^~ /phpMyAdmin_CDN/ { deny all; },再单独放开管理员 IP - 关键配置项检查:
$cfg['AllowArbitraryServer'] = false;、$cfg['LoginCookieValidity'] = 3600;,避免会话复用和任意服务器注入 - 不要依赖
.htaccess或robots.txt隐藏路径——它们对 WAF 规则无影响,反而暴露意图
WAF 规则写得再细,也防不住源站把 config.inc.php 直接放在 Web 可读目录下;路径名改得再偏,也挡不住有人爆破出真实 IP 后直连源站。真正卡住入口的,永远是“路径+IP+认证”三层叠加,而不是单靠一个 http.request.uri.path 表达式。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











