当前位置:网站首页 >  百科

PHPCMS主流版本官方漏洞补丁零门槛分步快速实操安装指南

时间:2026年05月23日 12:50:41 来源:易频IT社区

一、前置准备(避免90%安装失败)

本次覆盖PHPCMS V9全系列核心主流版本(V9.5.9-V9.6.6 SP1),补丁来自官方唯一合规渠道,提前完成3项操作:

  • 备份全站文件+数据库:先通过宝塔面板/FileZilla/FTP工具压缩整个网站根目录为zip格式(压缩前关闭CDN+网站后台,避免文件写入冲突);数据库通过phpMyAdmin/宝塔数据库管理导出为.sql.gz压缩包,单独存到本地电脑非C盘。
  • 确认当前PHPCMS版本号:登录后台→点击右上角【系统设置】→下拉菜单选【系统更新】,顶部直接显示版本号(如V9.6.6 UTF-8 Release 20200827)。
  • 获取对应编码的官方补丁:GBK编码去「https://www.phpcms.cn/download/202406/08/1055.html」,UTF-8编码去「https://www.phpcms.cn/download/202406/08/1054.html」,2024年6月官方统一发布的终极安全补丁,覆盖所有历史高危SQL注入、XSS、任意文件上传漏洞。

二、非宝塔环境(FileZilla/FTP)补丁安装

1. 解压并筛选补丁文件

下载好的压缩包命名类似「phpcms-v9-final-security-patch-utf8-20240608.zip」,在本地电脑解压,得到一个同名文件夹,打开后里面只有2个核心目录:phpcmsstatics,其他版本无关文件直接忽略!

2. 上传补丁覆盖旧文件

  • 打开FileZilla/FTP工具,输入空间商提供的主机IP/域名、FTP用户名、FTP密码、FTP端口(默认21,部分云服务商是22或自定义),连接成功后定位到网站根目录(通常是public_html/wwwroot/htdocs,要看空间说明)。
  • 把本地解压后phpcmsstatics这两个文件夹,直接拖拽到FileZilla/FTP的远程根目录窗口(别放错子目录!)。
  • 弹出「文件已存在」提示框,必须选「覆盖所有文件」+「应用于此队列的所有文件」,点击确定等待上传覆盖完成(覆盖前已备份,不用怕)。

3. 后台验证修复状态

重新打开PHPCMS后台,刷新页面后点击【系统设置】→【系统更新】,底部会显示「系统已安装最新安全补丁」提示,无提示则检查文件是否覆盖到根目录对应位置。

三、宝塔面板环境(国内90%用户用这个,更快捷)

1. 直接上传补丁压缩包到根目录

  • 登录宝塔面板→点击左侧【文件】→定位到网站根目录(点击对应站点右侧的「根目录」按钮直接跳转)。
  • 点击顶部【上传】→选择本地准备好的对应编码补丁压缩包→等待上传100%后关闭上传框。

2. 一键解压并自动筛选覆盖

  • 找到刚上传的压缩包,鼠标右键→选择「解压」
  • 弹出解压窗口:解压路径留空(默认当前根目录),勾选「解压覆盖同名文件」,点击【确定】→等待3-5秒解压完成(宝塔会自动过滤压缩包里冗余的说明文档,只留phpcms、statics两个目录)。
  • 解压完成后,右键删除压缩包,节省空间。

3. (可选但推荐)清理网站缓存

PHPCMS主流版本官方漏洞补丁零门槛分步快速实操安装指南

为避免旧缓存影响新补丁生效,登录宝塔面板→点击【软件商店】→找到对应Web服务器(Apache/Nginx)→点击右侧【设置】→选择【重载配置】;然后登录PHPCMS后台→点击【系统设置】→【系统工具】→【更新缓存】→全选所有缓存项→点击【确定更新】。

四、手动修复特殊版本残留(仅V9.6.0以下用户需操作)

2024官方终极补丁对V9.6.0以下版本有1个phpcms/libs/classes/application.class.php的小漏改,需手动替换2处代码,用宝塔【文件】→找到对应文件→右键【编辑】:

  • 第1处替换: 找到原代码: ```php if(!preg_match('/^[a-z0-9_\/]+$/i', $_GET['m']) && !preg_match('/^[a-z0-9_\/]+$/i', $_GET['c']) && !preg_match('/^[a-z0-9_\/]+$/i', $_GET['a'])) { ``` 替换为官方修复后的代码: ```php if((isset($_GET['m']) && !preg_match('/^[a-z0-9_\/]+$/i', $_GET['m'])) || (isset($_GET['c']) && !preg_match('/^[a-z0-9_\/]+$/i', $_GET['c'])) || (isset($_GET['a']) && !preg_match('/^[a-z0-9_\/]+$/i', $_GET['a']))) { ```
  • 第2处替换: 找到原代码: ```php if(!preg_match('/^[a-z0-9_\/]+$/i', $_POST['m']) && !preg_match('/^[a-z0-9_\/]+$/i', $_POST['c']) && !preg_match('/^[a-z0-9_\/]+$/i', $_POST['a'])) { ``` 替换为官方修复后的代码: ```php if((isset($_POST['m']) && !preg_match('/^[a-z0-9_\/]+$/i', $_POST['m'])) || (isset($_POST['c']) && !preg_match('/^[a-z0-9_\/]+$/i', $_POST['c'])) || (isset($_POST['a']) && !preg_match('/^[a-z0-9_\/]+$/i', $_POST['a']))) { ```

替换完成后点击左上角【保存】,关闭编辑窗口,重复清理缓存步骤即可。

五、安全加固收尾(补丁外的关键操作)

安装补丁后做2步,彻底杜绝旧漏洞复现:

  • 修改后台入口地址: 宝塔/FileZilla找到根目录下的admin.php,右键重命名为任意复杂组合的文件名(比如admin_9x7y2z.php),以后后台登录必须用新地址(原域名+新文件名),旧地址admin.php直接删除!
  • 关闭不必要的目录执行权限: 宝塔面板→点击【网站】→对应站点右侧【设置】→【目录保护】→添加保护规则: 目录路径:/uploads/ 执行权限:禁止 同样方法添加:/statics/js/、/statics/css/、/data/ 这3个目录的禁止执行权限(注意宝塔里目录路径是相对于网站根目录的,开头不用加/也可以,但加/更规范)。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图