phpinfo会暴露敏感数据吗_使用phpinfo注意安全风险点【提醒】
技术百科
蓮花仙者
发布时间:2026-01-16
浏览: 次 是,phpinfo() 默认输出全部PHP配置、扩展、环境变量和服务器信息,包含DOCUMENT_ROOT、SCRIPT_FILENAME、已启用扩展、php.ini路径、环境变量及$_ENV/$_SERVER中的密钥等敏感内容,极易被攻击者利用。
会,phpinfo() 默认输出全部 PHP 配置、扩展、环境变量和服务器信息,其中包含大量敏感数据,**不应在生产环境暴露**。
哪些信息属于敏感内容
phpinfo() 页面中直接可见的敏感项包括:
-
$_SERVER数组里的DOCUMENT_ROOT、SCRIPT_FILENAME、HTTP_HOST、REMOTE_ADDR等 —— 可推断目录结构与访问来源 - 已启用的扩展列表(如
pdo_mysql、redis)—— 暴露技术栈,辅助攻击者选择利用链 -
Loaded Configuration File显示php.ini路径 —— 攻击者可尝试读取该文件(若 Web 服务配置不当) -
Environment区域可能含PATH、HOME、自定义环境变量(如数据库密码误设在环境变量中) -
PHP Variables下的$_ENV和$_SERVER若未清理,可能泄露密钥、API Token 等
常见错误使用场景
以下做法极易引发风险:
- 为“临时调试”在网站根目录放一个
info.php,写入,上线后忘记删除 - 用 Nginx/Apache 的 location 规则仅限制 IP 访问,但规则配置错误(如正则未锚定、路径匹配宽松),导致绕过
- CI/CD 流程中自动部署时,模板或脚本意外将
phpinfo()文件带入生产镜像 - 某些旧版 CMS 或安装向导残留
phpinfo()页面(如/install/phpinfo.php),未被清理
安全替代方案与加固建议
如需检查运行时配置,优先采用更可控的方式:
- 用
ini_get('display_errors')、extension_loaded('opcache')等函数按需查询单个配置或状态,而非全量输出 - 通过命令行查看:执行
php -i(本地运维)或php -m(查扩展),避免 Web 暴露 - 若必须保留 Web 端入口,务必加访问控制:
– Nginx 示例
:
location /phpinfo.php { allow 192.168.1.100; deny all; }
– 并确保文件名不规律(如syschk_8a3f.php),且不在版本库中 - 上线前扫描工具检查:
grep -r "phpinfo" . --include="*.php",确认无残留调用
真正危险的不是 phpinfo() 本身,而是它把本该隔离的内部视图,毫无遮拦地交到了外部请求手里。哪怕只开放 5 分钟,也可能被自动化扫描器捕获并存档。
# 自动化
# 镜像
# 自定义
# 未被
# 而非
# 如需
# 敏感数据
# 旧版
# 命令行
# redis
# 工具
# 环境变量
# 数据库
# 栈
# red
# Token
# php
# mysql
# 该文件
# apache
# nginx
# include
# location
# 应在
# cms
# 极易
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- 如何使用Golang操作指针变量_Golang解引
- LINUX怎么进行文本内容搜索_Linux gre
- mac怎么看硬盘大小_MAC查看磁盘存储空间与文件
- Windows服务无法启动错误1067是什么_进程
- Windows 10怎么把任务栏放在屏幕上方_Wi
- Win11怎么设置触控板手势_Windows11三
- C++中的std::shared_from_thi
- mac本地php环境如何开启curl_curl扩展
- C++友元类使用场景_C++类间协作设计方式讲解
- Windows怎样拦截QQ浏览器广告_Window
- Win11怎么关闭键盘按键音_Win11禁用打字声
- Windows10系统怎么查看设备管理器_Win1
- 如何使用Golang开发基础文件下载功能_Gola
- Windows10如何更改开机密码_Win10登录
- MySQL 中使用 IF 和 CASE 实现查询字
- Win11怎么调整屏幕亮度_Windows 11调
- mac怎么退出id_MAC退出iCloud账号与A
- Win11如何设置开机问候语 Win11修改登录界
- Win11如何连接Xbox手柄 Win11蓝牙连接
- php打包exe后无法读取环境变量_变量配置方法【
- Win11怎么设置屏保时间_调整Win11屏幕保护
- Python技术债务管理_长期维护解析【教程】
- php转exe用什么工具打包快_高效打包软件推荐【
- Python数据挖掘进阶教程_分类回归与聚类案例解
- php485读数据时阻塞怎么办_php485非阻塞
- 如何在Golang中使用replace替换模块_指
- Win11怎么查看局域网电脑_Windows 11
- Win11触摸板没反应怎么办_开启Win11笔记本
- Win10怎样卸载iTunes_Win10卸载iT
- Python异步网络编程_aiohttp说明【指导
- 如何在Golang中定义接口_抽象方法和多态实现
- 如何在 Laravel 中通过嵌套关联关系进行 o
- php中$this和::能混用吗_对象与静态作用域
- 静态属性修改会影响所有实例吗_php作用域操作符下
- Win10怎么卸载金山毒霸_Win10彻底卸载金山
- Win11怎么开启HDR模式_Windows 11
- Go 中 defer 语句在 goroutine
- Win11怎么开启智能存储_Windows11存储
- Windows10如何更改任务栏高度_Win10解
- Win11如何设置ipv6 Win11开启IPv6
- c++ namespace命名空间用法_c++避免
- 如何在Golang中实现邮件发送功能_Golang
- php错误怎么开启_display_errors与
- 如何使用正则表达式提取以编号开头、后接多个注解的逻
- Windows10系统怎么查看CPU温度_Win1
- Python深度学习实战教程_神经网络模型构建与训
- 如何在Golang中验证模块完整性_Golangg
- PHP中require语句后直接调用返回对象方法的
- Win11怎么关闭搜索历史 Win11清除搜索框最
- Win11怎么更改默认打开方式_Win11关联文件


QQ客服