判断网站是否运行php需三步:一查语言栈,问运维或执行php -v;二看响应头,用curl -i检查x-powered-by字段;三查进程,执行ps aux | grep php-fpm确认php-fpm运行状态。

直接查最核心的三项:看语言栈、看响应头、看进程。不用等安全团队排期,10分钟内就能出结论。
第一步:确认网站是否运行在PHP上
这是前提。如果不是PHP环境,这个漏洞不构成威胁。
- 联系你的服务商或运维人员,直接问:“当前网站后端用的是不是PHP?版本号是多少?”
- 如果能登录服务器,执行 php -v 查看版本;若提示命令未找到,大概率没装PHP或不在PATH中。
- 检查Web服务器配置:Nginx配置里有没有 fastcgi_pass 指向 php-fpm;Apache里有没有启用 mod_php 或通过 proxy_fcgi 转发到PHP-FPM。
第二步:检查HTTP响应头是否暴露PHP信息
很多站点会在响应头中明示PHP版本,这等于给攻击者递刀。
- 用浏览器开发者工具(F12 → Network → 刷新页面 → 点任意HTML/PHP请求 → Headers),查看响应头中是否有 X-Powered-By: PHP/8.x.x 这类字段。
- 命令行快速验证:curl -I https://yourdomain.com,观察输出里是否含 X-Powered-By 或 Server 字段透露PHP痕迹。
- 注意:即使隐藏了这个头,也不能排除风险——只是增加了攻击门槛,底层仍可能中招。
第三步:登录服务器,确认PHP-FPM是否在运行
这是最可靠的实证方式,尤其适用于自托管或云服务器用户。
- 执行 ps aux | grep php-fpm,看到类似 php-fpm: master process 的进程即说明正在运行。
- 进一步确认版本:php-fpm -v 或进入PHP-FPM主进程所在目录查其配置绑定的PHP二进制路径,再执行对应路径下的 php -v。
- 如果使用Docker,进容器执行 ps aux | grep php 或 php --version 同样有效。
查完之后怎么判断是否中招
只要满足以下任一条件,就处于风险范围内,需立即行动:
- 确认使用PHP,且版本为 8.2.x ≤ v 、8.3.x ≤ v 、8.4.x ≤ v 、8.5.x ≤ v ;
- 使用已停止维护的旧版本(如7.4、8.0、8.1),官方不再提供补丁;
- 无法确认版本,但存在PHP-FPM进程且对外提供Web服务。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











