安全扫描报告里有一条「发现 phpinfo 测试页面」,路径是 /info.php。翻了一下项目,那是两年前同事排查扩展问题时留下的,谁也没删。

一个页面能漏多少东西

phpinfo 会把系统、PHP 版本、编译参数、ini 文件路径、已加载扩展、环境变量、HTTP 头全打出来。里面可能有框架目录、服务器内网 IP,甚至环境变量里的密钥线索。攻击者拿到 PHP 版本就能查对应的 CVE,拿到路径就能猜目录结构。

常见的泄露位置

  • 临时排查文件:info.php、test.php、phpinfo.php,用完忘删最常见。
  • 框架调试路由:某些框架的开发环境会暴露调试面板页面。
  • 主机探针:主机商自带的 php 探针脚本,功能类似 phpinfo。
  • 备份文件:info.php.bak 这类后缀不被 PHP 解析,但能被直接下载。

怎么查全站有没有

先在站点根目录按文件名搜关键字,再核对线上是否遗留:curl 几个常见路径看返回码,返回 200 就是存在。Nginx 里可以直接封:在 server 段加一条 location 匹配规则返回 403,比逐个删文件更保险,Apache 用 FilesMatch 同样处理。

location ~* (phpinfo|info|test)[.]php$ { return 403; }

注意这个正则别把正常业务页面误伤,上线前先 nginx -t 检查语法。

已经被扫到了怎么办

先删文件,再改密码。泄露内容里可能包含连接线索,稳妥做法是把数据库密码、后台口令、接口密钥都换一遍,然后翻访问日志找扫描 IP,看有没有后续的异常请求。同时把 expose_php 设成 Off,把响应头里的 PHP 版本信息去掉,减少主动暴露。