导读: 2026 年 10 月下旬,PHP 官方罕见地打破常规发布节奏,紧急推出了 PHP 8.2.35(以及 8.3.36、8.4.27、8.5.12)纯安全补丁版本。这次更新没有增加任何新语法,也没有修复普通 Bug,只做了一件事——修补两个潜伏了 14 年之久、CVSS 评分高达 9.2 分 的底层远程代码执行(RCE)漏洞:CVE-2026-109618 与 CVE-2026-109619(安全社区统称为 “php2shell”)。
更令整个科技界震动的是,这两个曾被人类顶尖专家认为“过于复杂、不可能被利用”的陈年死案,是由前沿 AI 大模型(GPT-5.6 Sol 与 Gemini 4 Argon)在短短一周内彻底攻破并完成武器化验证的。本文将从版本变更、大白话原理、底层技术细节、AI 挖洞内幕到防火墙真实防御力,为你做一次全景式的深度复盘。
一、 PHP 8.2.35 到底升级了什么?
由于 PHP 8.2 分支目前已处于“仅安全维护(Security Support Only)”阶段,并将在 2026 年 12 月 31 日 正式迎来生命周期终结(EOL),因此 PHP 8.2.35 相对于一个月前发布的 PHP 8.2.34,是一次 100% 纯粹的紧急安全更新。
翻开 PHP 8.2.35 的官方更新日志(ChangeLog),全篇只有一行简短却分量极重的核心改动:
- Core(核心层):
- 修复了 GHSA-w8hw-w9fx-j79w 与 GHSA-6wmf-4rv5-p3rp(
Avoid state corruption via bailout,即防止通过异常跳出机制导致内部状态损坏)。
这两个 GitHub 安全公告对应的国际漏洞编号正是 CVE-2026-109618 与 CVE-2026-109619。我们可以将 PHP 8.2.34 与 8.2.35 的核心差异浓缩为下表:
| 对比维度 | PHP 8.2.34 | PHP 8.2.35 |
|---|---|---|
| 发布时间 | 2026 年 9 月 24 日 | 2026 年 10 月 21 日 / 22 日 |
| 更新性质 | 常规安全更新(修复 Filter 编码与 FPM IPv6 绕过等) | 紧急带外(Out-of-Band)RCE 救火补丁 |
| 改动模块 | Filter、FPM 等外围模块 | 仅 Core(Zend/PHP 底层请求生命周期与内存状态机) |
| 修复漏洞 | CVE-2026-91765 等中风险漏洞 | CVE-2026-109618、CVE-2026-109619(CVSS 9.2 严重 RCE) |
| 业务兼容性 | 100% 兼容 8.2.x | 100% 无缝兼容 8.2.34(不涉及任何语法、API 或扩展破坏) |
二、 大白话拆解:用“银行柜台”看懂 php2shell 是怎么攻破服务器的?
很多非底层C语言开发者第一次看官方漏洞报告时都会一头雾水:什么叫“OOM 半初始化状态损坏”?什么又叫“跨请求残留全局悬空指针”?
别急,我们把 PHP 服务器想象成一家银行的办事柜台,里面坐着几个柜员(PHP 工作进程 Worker),专门负责接待排队的客户(用户的网页请求)。
1. 平时正常情况下,PHP 柜员是怎么工作的?
为了保证上一个客户和下一个客户的资料绝不串味,柜员接待每位客户都严格遵守四步安全规矩:
- 腾出空抽屉(分配内存): 客户 A 走过来,柜员先拿一个干净的临时抽屉,专门放客户 A 递过来的材料;同时在自己的电脑屏幕上贴一张便签纸,写上:“当前客户材料在 3 号抽屉”。
- 拆包检查(解析请求): 柜员把客户 A 递过来的包裹拆开,整理好放进 3 号抽屉。
- 办业务(运行你的 PHP 代码): 柜员核对客户 A 的身份证、密码(执行你写的
index.php登录校验和业务逻辑),把事办完。 - 清空抽屉、撕掉便签(清理阶段): 客户 A 离开时,柜员先把屏幕上的便签纸撕掉,然后把 3 号抽屉彻底清空归还,接着干干净净地接待下一位客户 B。
2. 黑客是怎么钻空子的?
问题出在 PHP 的“紧急避险机制”上。
每个柜员的抽屉容量是有限的(PHP 默认最多只允许一个请求占用 128MB 内存)。如果某个客户突然塞过来一大堆膨胀的材料,把抽屉彻底撑爆了(内存耗尽 OOM),柜台就会立刻拉响警报!按规定,柜员必须立刻停下手头做到一半的所有动作,直接跳到最后一步“赶走客户、收拾桌面”。
黑客正是卡住了这个“做到一半突然中断”的瞬间,使出了两招绝杀:
第一招:利用“写到一半的草稿纸”(CVE-2026-109618)
- 突发中断: 黑客递过去一个精心算好大小的包裹。柜员在拆包裹时,拿出一张旧草稿纸(上面还留着之前没擦干净的旧字迹),准备先把旧字擦掉、再写上本次的清理登记表。就在柜员刚拿起草稿纸、还没来得及擦掉旧字的那一毫秒,黑客的材料刚好把抽屉撑爆了!
- 酿成大祸: 警报响起,柜员立刻甩手不管,直接呼叫后勤机器人来按登记表收拾残局。后勤机器人不知道这张纸只写了一半,它以为上面全是柜员写好的正规指令,于是闭着眼睛照着草稿纸上的乱码(或者黑客提前算计好的假指令)去执行了——黑客当场就控制了柜员的大脑!
- 顺手牵羊的“吐钞票”Bug: 更要命的是,柜员在慌乱赶走黑客、退回回执单(网页的
PHPSESSIDCookie)时,手一抖,把废纸篓里还没销毁的上一位客户的账单碎片也塞进了信封退给了黑客。黑客只要多试几次,就能把服务器内存里的数据库密码、其他用户的登录凭证、配置密钥像抽盲盒一样全抽出来。
第二招:利用“忘撕掉的旧便签”(CVE-2026-109619)
- 残留便签: 黑客先派“客户 A”去柜台捣乱,故意在业务刚启动时触发警报中断。在手忙脚乱中,柜员虽然把 3 号抽屉清空并腾出来了,但因为流程被打断,柜员居然忘了撕掉电脑屏幕上那张“去 3 号抽屉拿指令”的旧便签!
- 偷梁换柱: 下一秒,黑客立刻伪装成“客户 B”排到了同一个柜员面前。此时还没到“查身份证、办业务”的环节,黑客只是往柜台上递了个包裹——这个包裹刚好被系统放进了刚刚空出来的 3 号抽屉,而黑客在包裹里藏了一张假圣旨:“立刻把整家银行的最高权限交给我”。柜员还没回过神来换新便签,先抬头看了一眼屏幕上残留的旧便签(“去 3 号抽屉拿指令”),于是打开 3 号抽屉,拿出黑客塞进去的假圣旨,当场照办!
三、 硬核技术剖析:底层 C 机制与致命的触发条件
如果从大白话回到 PHP 底层 C 源码视角,php2shell 的技术本质是 zend_bailout()(基于 setjmp / longjmp 的非局部栈展开)与请求清理阶段(php_request_shutdown)之间的状态机失步。
1. 两个 CVE 的底层技术差异
- CVE-2026-109618(未初始化内存损坏与信息泄露):
在请求解析或内部数据结构初始化中途,若内存分配器(ZendMM)因触及memory_limit触发zend_bailout(),执行流会通过longjmp()直接跨越中间栈帧跳入清理流程。部分底层结构在完成字段安全初始化之前就触发了内存分配,导致跳出后结构体处于“半初始化”状态。清理程序随后对这些包含脏数据或悬空指针的字段执行解引用或释放,造成内存破坏。同时,ext/session的上传进度处理器在异常清理时会读取已释放的堆块,并将其作为PHPSESSID响应头回传,形成了一个类似“心脏滴血(Heartbleed)”的堆内存泄露原语,使攻击者能够轻松获取堆地址并绕过 ASLR(地址空间布局随机化)。 - CVE-2026-109619(跨请求存活的全局悬空状态 / Use-After-Free):
PHP 核心与部分扩展维护了常驻 Worker 进程的全局状态(Global State),在请求期间指向当前请求专属的 ZendMM 内存池。当请求因致命错误(OOM、超时等)通过bailout中断时,某些边缘清理路径在释放了请求内存池之后,未能正确重置这些全局指针,或者在重置后又被随后的清理钩子错误地重新写入(Repopulated)。当同一个 Worker 进程接收下一个请求时,在正常初始化覆盖该全局指针之前,早期执行的逻辑会直接读取该悬空指针,攻击者通过在新请求中进行堆布局(Heap Feng Shui)占领该内存块并伪造zval或利用 OPcache 类型混淆,即可实现稳定的 RCE。
2. 为什么说“几乎所有默认配置的 PHP 环境都裸奔在枪口下”?
很多开发者误以为:“我的网站没有文件上传功能,也没用 Session,而且全站都有严格的登录鉴权,肯定没事。”——这恰恰是最危险的误区。
- Pre-Auth 零代码依赖(发生在你的第一行 PHP 代码运行之前):
漏洞触发在 SAPI 底层解析 HTTP POST 请求体(multipart/form-data或application/x-www-form-urlencoded)的阶段。此时你的index.php、Laravel/ThinkPHP 路由、登录鉴权中间件、甚至网站自带的“停机维护模式”根本还没有开始执行!只要请求能到达 PHP 解释器,就能触发漏洞。 - 默认开启的“幽灵开关”(
session.upload_progress.enabled = 1):
自 2012 年 PHP 5.4.0 起,PHP 默认开启了上传进度追踪功能。最致命的设计在于:即便你的业务代码里一行session_start()都没写,也没有任何上传接口,只要攻击者在发来的multipart/form-data请求中附带名为PHP_SESSION_UPLOAD_PROGRESS的字段,PHP 底层引擎就会在解析请求体时自动激活 Session 上传进度钩子! - 默认自带的内存引爆器(
memory_limit = 128M):
只要启用了有限的memory_limit(默认即为128M),攻击者就能通过精准计算请求分块与头部开销,在指哪打哪的精确位置触发 OOMbailout。 - 运行模式影响(
mod_php与PHP-FPM双双沦陷): - Apache
mod_php: 即使在请求启动阶段(Request Startup)触发 OOM,进程也不会销毁,而是直接进入存在漏洞的清理流程,实现无条件一击必杀。 - PHP-FPM / 常驻进程: 只要前一个请求启动后触发任意致命错误或超时留下残留全局指针(CVE-2026-109619),攻击者通过并发请求命中同一个 FPM Worker 进程,即可完成跨请求 UAF 远程代码执行。
四、 破坏力评估:当所有业务防线瞬间归零
一旦未打补丁的服务器暴露在攻击者面前,其破坏力体现在四个维度:
- 无视一切应用层密码与鉴权: 后台密码、双因素认证(2FA)、CSRF Token 在底层引擎漏洞面前形同虚设。
- 无损、不死机的隐蔽接管: 借助
PHPSESSID内存回显提前摸清内存地址后,攻击代码可以做到一次命中且不会导致 PHP Worker 进程崩溃(无 Segfault 502 报错)。网站前台看似一切正常,后台其实已被植入内存马或 Webshell。 - 跨用户内存敏感数据直抽: 攻击者无需执行系统命令,仅靠反复触发内存回显,就能把同一个 Worker 进程刚刚处理过的其他正常用户的内存碎片抽出来——包括
.env数据库密码、JWT 密钥、支付网关 API 秘钥、用户明文密码乃至私钥碎片。 - 同服多站点“一锅端”: 在宝塔、cPanel 或共享虚拟主机环境中,只要有一台服务器上的某个废弃测试小站未升级,黑客攻入后即可横向读取并篡改同用户池下的所有正式站点(如植入电商信用卡盗刷脚本或勒索病毒)。
五、 深度复盘:为什么潜伏 14 年没人发现,却被 AI 一周攻破?
php2shell 在安全史上具有里程碑意义:根据漏洞披露方 Calif(研究员 Ryan Austin)与 Wiz Research 的技术报告,这两个自 2012 年就存在于 PHP 源码中的漏洞,是由安全团队借助 OpenAI GPT-5.6 Sol 与 Google DeepMind Gemini 4 Argon 挖掘并完成武器化验证的。
更耐人寻味的是:早在十几年前,就有敏锐的人类安全专家注意到了 PHP 内存耗尽跳出机制有隐患,但当时人类研究后一致认为“现场太乱、复杂度过高,现实中根本无法利用”,从而将其束之高阁。 为什么人类和传统工具花了 14 年都没搞定,AI 却能在一周内破局?
1. 人类专家与传统扫描工具(Fuzzer)的四大盲区
- 非线性跳转打乱人脑思维: 人类习惯按顺序读代码,而
longjmp()相当于在几十万行代码里埋了上万个“隐形逃生滑梯”。要靠人脑穷举“在任意一行代码断电跳走后,与几千行外的清理程序会发生什么化学反应”,组合数高达百万级,人脑瞬间就会过载。 - 人类的“性价比劝退”: 人类专家有畏难情绪和时间成本考量。面对稍有不慎就会死机的 OOM 漏洞,人类评估觉得花大半年去试错太不划算,于是在“经验主义”的驱使下主动放弃了深挖。
- 传统自动化工具(Fuzzer)天生“近视”: 传统的模糊测试工具(Fuzzer)每次只知道傻瓜式地塞乱码看程序死不死机。当它把内存撑满导致 PHP 退出时,Fuzzer 以为这只是正常的内存超限提示,直接忽略跳过;而且传统 Fuzzer 根本不会设计“请求 A 留隐患 → 请求 B 带特殊参数来引爆”的两回合配合战。
- 跨模块“部门墙”: 要完整拼出这次的不死机攻击链,必须同时精通并串联
rfc1867(表单解析) +ext/session(上传进度) +PHPSESSID(Cookie 内存回显) +OPcache(类型混淆利用) 四个毫不相干的底层模块。人类专家往往各攻一摊,极难跨界把四块碎片拼成藏宝图。
2. 前沿推理 AI 的四大“降维打击”
- 全景上帝视角: AI 把整个 PHP 核心内存分配器、表单解析、Session 扩展和 OPcache 源码同时装入超长上下文窗口,冷酷、机械地把每一个可能分配内存失败的瞬间与清理函数的交互全部推演了一遍,一眼揪出了没擦干净的“草稿纸”和没撕掉的“旧便签”。
- 没有畏难情绪,专从人类废纸篓里淘金: 研究员 Ryan Austin 正是让 GPT-5.6 Sol 重新审视当年被人类判定为“无法利用”的历史死案。AI 不会嫌烦,几分钟内就排除了几千条死路,锁定了唯一能走通的活路。
- 自动寻找“搭桥配件”,将数月工程压缩到一周: 当卡在“操作系统地址随机化(ASLR)”这堵高墙前时,Wiz 团队利用 Gemini 4 Argon 与 GPT-5.6 Sol 在代码库中自动搜寻配合原语,顺藤摸瓜找出了利用
PHPSESSID泄露内存地址的绝妙跳板,将原本需要顶尖团队耗时数月的堆利用工程缩短到了短短 1 周。 - 纳米级“算账大师”: AI 精确计算出 PHP 内部每个结构体占用的字节数,设计出用大量微小分段请求头(无需超大体积包)精准消耗内存配额的方案,几十个普通请求就能稳稳拿下服务器。
| 对比维度 | 传统自动化扫描 (Fuzzer) | 人类顶尖安全专家 | 前沿推理 AI (GPT-5.6 Sol / Gemini 4 Argon) |
|---|---|---|---|
| 看待“内存撑爆 (OOM)” | 视为正常报错限制,直接跳过 | 知道有隐患,但认为现场太乱无法控制 | 逐行模拟断电瞬间,精准找出哪张“便签”未重置 |
| 跨请求双簧戏追踪 | 极弱(仅测单次请求是否崩溃) | 极难在数千个全局变量中靠脑力穷举 | 轻松推演“请求 A 留隐患 → 请求 B 来引爆”的跨请求状态 |
| 跨模块串联能力 | 零(各自独立盲测) | 精力受限,极难同时精通 4 个底层模块 | 全库代码同时载入,瞬间串联表单、Session 与 OPcache |
| 从发现到武器化耗时 | 完全无法自动编写利用链 | 需数月甚至数年试错,极易半途放弃 | 1 周内找齐内存泄露与代码执行跳板,完成一击必杀 |
时代警钟: php2shell 宣告了一条旧安全铁律的终结——从今天起,“这个漏洞太复杂,现实中没人能利用成功”这句安慰人类自己的话,已经彻底失效了。六、 防火墙、WAF 和安全软件能挡住攻击吗?真实防御力大测评
很多运维人员第一反应是:“我有 Cloudflare / 阿里云 WAF,服务器上还装了安全狗 / 安骑士,WordPress 里还装了 Wordfence,能防住吗?”
答案很残酷:任何安全软件都只能帮你争取几个小时的喘息时间,绝对无法替代升级补丁。 下面是各类主流安全防线的真实体检报告:
1. PHP 代码级安全插件(如 Wordfence、框架鉴权中间件)→ 防御力:0%
- 为什么彻底无效? 因为这些插件本身就是用 PHP 写的!它们必须等到“柜员拆完包裹、开始办业务(第 3 步)”时才能运行;而黑客在“柜员拆包裹(第 2 步)”的 C 语言阶段就已经接管了服务器。你的插件连醒过来的机会都没有。
2. 传统网络防火墙(云服务器安全组、iptables、ufw)→ 防御力:0%
- 为什么彻底无效? 传统防火墙只看端口。只要你的网站对外开放 80 或 443 端口正常营业,黑客伪装成普通网页访问的攻击包就会被一路绿灯放行(除非是纯内部后台,用防火墙彻底封死公网访问、仅允许 VPN/SSH 隧道进入)。
3. 主机安全软件 / 杀毒 / EDR(如安骑士、CrowdStrike)→ 防御力:仅能事后报警
- 真实表现: 当黑客利用漏洞偷取内存里的数据库密码,或者只在 PHP 内存里篡改数据时,主机杀毒软件完全看不见。只有当黑客得手后,试图让 PHP 去调用系统命令行(如打开
/bin/sh下载挖矿木马)时,EDR 才会发现异常并拦截报警。
4. 网站应用防火墙(WAF,如 Cloudflare、AWS WAF、宝塔 WAF)→ 防御力:70% ~ 80%
各大云厂商目前已紧急上线了拦截 PHP_SESSION_UPLOAD_PROGRESS 和超大包的规则,能挡住大部分公开的自动化扫描脚本,但 WAF 存在四个无法根治的死穴:
- “四两拨千斤”绕过体积限制: 黑客不需要发 128MB 的大包。黑客只需发一个几百 KB 的小包,但在里面塞入上万个微小的分段请求头(空信封)。这个小包在 WAF 看来完全合规,但进到 PHP 肚子里会瞬间膨胀几十倍,照样把内存撑爆!
- 云 WAF 的流式检查上限: 为了保证网速,绝大多数云 WAF 只检查请求体的前几 MB 内容,把恶意载荷藏在尾部即可轻松溜过安检。
- 正常报错也能触发: 第二个漏洞(CVE-2026-109619)并不非要走“上传进度”通道,只要黑客诱导你的网站发生任何一次致命报错或运行超时,就能留下“旧便签”,WAF 根本无法区分这是正常访客报错还是黑客铺垫。
- 源站 IP 绕过: 一旦你的服务器真实 IP 暴露,黑客可以绕过云端 WAF 直接轰击源站。
| 防护手段类型 | 代表产品 | 真实拦截率 | 核心短板说明 |
|---|---|---|---|
| PHP 代码级防护 | Wordfence、Laravel 中间件 | ❌ 0%(完全无效) | 漏洞在 PHP 代码执行前触发,插件根本没机会运行。 |
| 传统端口防火墙 | 云安全组、iptables | ❌ 0%(完全无效) | 只要开放 80/443 网页端口,攻击包就能堂而皇之进入。 |
| 主机安全/杀毒 (EDR) | 阿里云安骑士、CrowdStrike | ⚠️ 仅能事后拦截 | 防不住内存密码被偷;仅在黑客执行系统命令时报警。 |
| 网站防火墙 (WAF) | Cloudflare、AWS WAF、宝塔 | 🟡 70% ~ 80% | 防得住已知脚本,防不住小体积多头部变种和常规报错触发。 |
| Web 服务器硬拦截 | Nginx / Apache 本机严格限制 | 🟢 90% 以上 | 在本机禁掉不用的 multipart 并配合 php.ini 加固,可锁死大部分路径。 |
| 升级 PHP 8.2.35+ | 官方底层安全补丁 | ✅ 100% 彻底根治 | 从 C 语言底层修好“清草稿”和“撕便签”逻辑,一劳永逸。 |
七、 终极自救指南:根治方案与三道“临时保命符”
方案 A:一劳永逸的根治方案(强烈建议立即执行)
唯一 100% 安全的做法是立即将 PHP 升级至官方最新安全补丁版本:
- PHP 8.2 分支 → 升级至 8.2.35
- PHP 8.3 分支 → 升级至 8.3.36
- PHP 8.4 分支 → 升级至 8.4.27
- PHP 8.5 分支 → 升级至 8.5.12
注意: 升级完软件包后,必须重启 php-fpm 服务或 Apache 服务(Docker 环境需重新拉取基础镜像并重建容器),才能把内存中还带着旧漏洞的 Worker 进程彻底替换掉!方案 B:如果今天实在无法停机升级,立即加上这“三道保命符”
如果你的生产环境因为特殊原因今天无法立刻升级,或者还在使用已经停服的老版本 PHP(如 7.4 / 8.0 / 8.1),请立即在服务器上叠加以下三层配置,将风险降到最低:
第一道保命符:在 php.ini 中拔掉导火索
打开你的 php.ini(或在 PHP-FPM 池配置中通过 php_admin_value 强制锁定,防止被业务代码用 ini_set 覆盖),修改以下参数:
; 1. 彻底关闭默认开启的上传进度追踪(直接斩断最主要的利用跳板)
session.upload_progress.enabled = 0
; 2. 禁用 PHP 内部内存上限跳出机制(避免触发有漏洞的 OOM longjmp)
; 注意:设为 -1 后,请务必配合 Docker/cgroup 限制容器总内存,防止宿主机内存耗尽
memory_limit = -1
; 3. 收紧单次请求体积与输入变量上限,压缩攻击者做“堆风水”的空间
post_max_size = 8M
upload_max_filesize = 4M
max_input_vars = 1000
max_input_nesting_level = 32
max_file_uploads = 5
第二道保命符:在 php-fpm.conf 中让“柜员”勤换班
针对第二个漏洞(CVE-2026-109619 跨请求残留便签),最狠的物理隔离办法是减小 Worker 进程复用次数。在过渡期内,如果服务器 CPU 允许,可以在 www.conf 中调小 pm.max_requests:
; 应急状态下可将该值调低(极端高危环境可临时设为 1,即每个请求处理完立刻销毁重建 Worker 进程)
; 虽然会增加一点 CPU 开销,但能彻底杜绝跨请求内存残留!
pm.max_requests = 50
第三道保命符:在 Nginx 层面直接拦截高危请求特征
在 Nginx 的站点配置文件(server 块)中加入以下拦截规则,把攻击流量直接挡在 PHP 门外:
# 1. 严禁任何带有 PHP_SESSION_UPLOAD_PROGRESS 字样的请求参数或 Cookie
if ($query_string ~* "PHP_SESSION_UPLOAD_PROGRESS") {
return 403;
}
if ($http_cookie ~* "PHP_SESSION_UPLOAD_PROGRESS") {
return 403;
}
# 2. 严格限制请求体大小与请求头缓冲区,防止多头部内存膨胀攻击
client_max_body_size 8m;
client_header_buffer_size 1k;
large_client_header_buffers 2 4k;
# 3. 【可选大招】如果你的网站(或特定 API 路径)根本不需要文件上传功能,
# 直接一刀切禁掉 multipart/form-data 请求,可瞬间废掉黑客 90% 的攻击脚本!
location /api/ {
if ($content_type ~* "^multipart/form-data") {
return 403;
}
# 原有的 fastcgi_pass 配置...
}
写在最后
回望过去十几年,从 2014 年 OpenSSL 的“心脏滴血(Heartbleed)”,到 2021 年 Java 生态的“Log4Shell”,再到今天 2026 年 PHP 生态的 “php2shell”,每一次史诗级漏洞的爆发都在重塑互联网的安全边界。
而这一次最为特殊——它是人类历史上第一次亲眼目睹 AI 大模型在浩如烟海的底层 C 代码中,精准推理并串联起尘封十四年的复杂内存状态漏洞。所幸在这场攻防赛跑中,白帽安全团队与 AI 实验室跑在了黑产前面,Google DeepMind 与 OpenAI 等机构也已开始投入巨额算力协助开源社区主动排查同类隐患。
对于每一位开发者和运维工程师而言,面对 AI 时代算力加持下的新型威胁,放弃“我的小站没人盯、漏洞太难没人会用”的侥幸心理,第一时间将 PHP 升级到 8.2.35+(并尽早规划从即将停服的 8.2 迁移至 8.3/8.4),就是当下保护数字资产最坚实的一步。
版权属于:soarli
本文链接:https://blog.soarli.top/archives/1186.html
转载时须注明出处及本声明。