这篇是写给需要拍板的人的。如果你是技术负责人,可以直接跳到最后一节;如果你需要向老板或客户解释同一件事,这一页纸够用。
一、三句话讲清发生了什么
- PHP 这个语言本身有严重漏洞。不是某个网站被入侵,也不是某个 CMS 有问题,是解释器内核的问题——所有跑在 PHP 上的系统都受影响。
- 攻击者不需要任何账号密码,构造一个特殊的网络请求就可能在你服务器上执行任意代码。多国政府机构与企业一度直接关站避险。
- 官方已经修好了(2026 年 10 月 21 日发布),但需要你自己升级;不升级就没有真正的修复。
二、影响你吗?三个问题自测
- 你的网站对外提供 PHP 服务吗?(WordPress、Discuz、自建商城、管理后台、phpMyAdmin 都算)
- 你知道自己跑的 PHP 是哪个版本吗?命令行看到的版本常常不是网站在用的那个。
- 你的站点在 10 月 21 日之前,是否一直对公网开放?
三个都是「是」,那就需要按本文第三节做决定;如果第三个是「否」,风险显著降低,但仍建议顺手升级。
三、需要你做的三个决定
决定一:停机,还是先扛着?
建议:停机升级。
理由很直接:升级通常在面板上点几下就能完成,真正需要你拍板的是停机窗口——这个成本主要是一次服务切换,而不是技术难度。为了省这几十分钟而选择临时扛着,等于把一个确定的小成本,换成一个不确定的大风险。
决定二:要不要额外加一层防护?
建议:加,但明确它是限速层,不是修复层。
如果你已经买了 WAF 或云防护,把它打开、加上大请求拦截是划算的——它能降低攻击频率与噪声。但请记住官方与各国 CERT 的原话:单靠 WAF 不足以构成保护。把预算顺序排对:先升级,再考虑防护。
决定三:借这次机会,处理历史遗留吗?
如果你有这些资产,它们是这次事件里最需要处理的:
- 跑在 PHP 8.1 或更早版本上的站点——官方已停止更新,不会再有补丁;
- 多年没人维护的 CMS 与插件;
- 已经没人知道干什么用的老服务器,还挂在公网上;
- 跑在老容器镜像里的服务。
处理方式通常不是「升级」,而是下线。一个没人用的站点,它的安全成本是实打实的。
四、怎么向客户解释
下面这段可以直接用:
「PHP 语言官方近期发布了两个高危漏洞的安全更新,影响范围覆盖全球使用 PHP 的网站。我们已完成自查,确认本站版本状态并已完成(/正在)升级与安全加固。这类漏洞的特点是修复动作本身很简单,难在及时发现——我们后续会把版本巡检纳入常规运维流程,并把这次的自查结果同步给您。」
需要额外说明的两点:
- 升级不等于历史问题被清除了。如果站点在漏洞窗口期对外开放过,我们会追加一次安全排查,确认没有被入侵的痕迹。这部分通常需要一点时间,我们会同步进展。
- 「我们的服务器是托管的」不是免责理由。主机商会提供补丁,但谁来发现、谁来点升级,仍需要你确认。
五、成本参考
| 项目 | 大致成本 |
|---|---|
| 升级到修复版本 | 通常为 0 成本(面板切换版本),成本在停机窗口与验证 |
| 安全排查 | 视站点数量与是否有对外暴露,可能数小时到数天 |
| 重建而非清理 | 成本更高,但确定性更强 |
| 补防护层 | 按需,建议在升级之后再评估 |
六、一条底线
不要为了「不停机」而跳过升级。
临时缓解措施确实存在,官方也给了完整的配置方案,但官方对它们的定性是「降低特定攻击路径的暴露面」,并且明确指出:即便有 WAF 也不足以构成保护,隐藏报错信息不起作用,某些看起来安全的做法反而会主动触发同类故障。
所以最省心的路径其实是最简单的路径:安排一个低峰窗口,升到修复版本,重启服务,做一次排查,然后把版本巡检变成常规动作。这次事件之后,真正拉开差距的不是谁的技术栈更先进,而是谁的动作更快。