如何临时关闭phpinfo_停用phpinfo输出快捷方式【停用】

14次阅读

phpinfo() 会成为安全隐患是因为只要 Web 目录下存在调用它的 PHP 文件(如 info.php),攻击者即可直接访问并获取服务器完整的 PHP 配置、扩展列表、$_SERVER 环境变量等敏感信息,风险实时存在。

如何临时关闭phpinfo_停用phpinfo输出快捷方式【停用】

为什么 phpinfo() 会成为安全隐患

只要 Web 目录下存在调用 phpinfo() 的 PHP 文件(比如 info.php),攻击者就可能直接访问它,拿到服务器的完整 PHP 配置、扩展列表、$_SERVER 环境变量、已加载模块路径等敏感信息。这不是“临时”或“测试时才危险”,而是只要能被 http 访问到,风险就实时存在。

最有效:从 Web 根目录彻底删除或重命名 phpinfo() 文件

所谓“临时关闭”,本质是阻止 HTTP 可达性。最可靠的方式不是改函数行为,而是让文件不可访问:

  • 检查 Web 根目录(如 /var/www/html/C:xampphtdocs)下是否存在 info.phptest.phpphpinfo.php 等疑似文件
  • 直接删除它们,或重命名为带 .bak / .disabled 后缀(如 info.php.disabled
  • 确认 Web 服务器(apache/nginx)不支持通过后缀别名执行 .disabled 文件(默认不支持,但需验证)

禁用 phpinfo() 函数本身(仅限无法删文件的受限环境)

如果因权限或流程限制无法删文件,可强制禁用该函数——但这属于兜底手段,不能替代删除操作:

  • 编辑 php.ini,找到 disable_functions 行,追加 phpinfo(注意不带括号)
  • 确保该配置在所有 SAPI 下生效(CLI、Apache、FPM 模块需分别确认)
  • 重启 PHP-FPM 或 Web 服务器(systemctl restart php-fpmapachectl restart
  • 验证是否生效:
    php -r "phpinfo();"

    应报错 Call to undefined function phpinfo()

⚠️ 注意:disable_functions 对已编译进核心的函数(如 echo)无效,但对 phpinfo() 有效;不过某些旧版 PHP 或自定义 SAPI 可能绕过该限制。

立即学习PHP免费学习笔记(深入)”;

用 Web 服务器规则拦截访问(Nginx/Apache 补充防护)

即使删了文件,也建议加一层访问控制,防遗漏或误传:

  • Nginx:在 server 块中加入
    location ~* ^/(info|phpinfo|test|debug).php$ {     deny all; }
  • Apache:在 .htaccess 或虚拟主机配置中加入
         Require denied 
  • 这些规则匹配文件名关键词,不依赖内容,响应快且无需 PHP 解析

真正要停用 phpinfo() 输出,没有“快捷方式”可留后门——删文件是起点,禁函数和加规则是保险。最容易被忽略的是:开发环境导出的备份包(如 www-backup.zip)里常藏有 info.php,上线前务必解压扫描。

text=ZqhQzanResources