汤姆科技在 2020 年前后用易优 CMS(EyouCMS)给客户做过一批站。2026 年 9 月把自家官网从易优迁到 WordPress 时,把这套系统的历史包袱重新理了一遍:旧版本公开的安全问题不少,是站点被挂马、被篡改、服务器被控最常见的入口之一。
这篇按先止血、再根治、后加固的顺序,整理一份可执行的处置清单,并附一份「怎么判断自己是不是已经中招」的自查方法。
说明:下文按版本号和漏洞类型描述,不点名具体 CVE 编号。漏洞库和厂商披露会变,背编号不如看自己装的是哪个版本可靠。
一、先确认:你的站算不算「旧版」
动手前先搞清楚现状,别凭印象判断。
- 看版本号:后台「系统信息」或根目录
version.php,能看到当前版本。 - 对比官方最新稳定版:低于官方当前稳定版,就属于需要处理的范围。
- 重点排查三类:
- 版本号明显偏低的(长期没升级过)
- 破解版 / 修改版 / 淘宝买的「去授权版」——这类即使版本号不低,风险也最大,因为程序被改过,谁也不知道改了什么
- 装了大量第三方非官方插件或主题的
- 确认你有没有源码和数据库的完整访问权。如果站是别人代建的、源码不在你手里,后面所有加固都做不了,先解决这个(见 源码交付说明)。
二、旧版高频问题清单
按「被批量利用的难度」从低到高排,前面几条是重点。
1. 前台越权登录 + 文件包含
旧版最核心的一条。攻击者可以从前台构造请求伪造管理员身份,绕过登录直接进后台,再结合插件下载类功能做文件包含,最终在服务器上执行任意代码(也就是俗称的 GetShell)。
危害等级最高:一旦成功,整站权限和服务器权限都会丢。
2. 任意文件上传
后台的头像上传、插件上传这类模块,如果只校验扩展名不校验内容,攻击者可以传一个 .php 上去并直接访问,等于把木马放进你家里。
判断方法:检查上传目录里有没有 .php / .phtml / .phar 这类文件——正常业务是不该有的。
3. 后台 SQL 注入
后台部分参数没做过滤,恶意参数可以拼进 SQL 语句,导致数据库被拖走、数据被改、管理员密码被读。
判断方法:看用户表和订单表有没有异常数据,后台有没有多出陌生管理员。
4. 模板代码执行
旧版模板编辑模块对写入的代码不做限制,攻击者可以在模板文件里插一段可执行代码,调用系统命令。
判断方法:检查模板目录下的文件有没有近期被改过,有没有 eval、assert、system 这类调用。
5. XSS 跨站脚本
备案号、留言、公告这些输入字段过滤不足,可以植入恶意 JS。危害不像前几条那么直接,但会被用来偷 Cookie、劫持后台会话、弹窗挂马引流。
6. 破解版 / 盗版资源后门
非官方修改的程序、第三方盗版插件和主题,普遍存在预留后门、静默传马、远程控制的情况。这类问题没有「补丁」可打,因为问题就在程序本身。
三、应急止血:今天就能做完的四件事
如果暂时没法升级,先把这几件事做了,能挡住绝大多数批量扫描和自动化攻击。
1. 先做完整备份(这是第一步,不是第二步)
把源码和数据库都备份一份,下载到本地或异地。理由很实际:清理木马、改权限、改配置都可能把站搞坏,没有备份就没有退路。备份文件不要留在网站目录里,否则等于把备份送给攻击者。
2. 查马清马
- 用官方「系统助手」之类的工具全盘扫描,删除未知的 PHP、伪装成图片的脚本文件。
- 拿官方原版同版本源码做文件比对,把被篡改的核心文件还原回去。
- 特别注意
uploads、runtime、data这些目录里不该出现的脚本文件。
3. 重置权限与密码
- 改掉超级管理员密码,用字母 + 数字 + 特殊符号的组合。
- 删除或禁用用不到的账号,尤其是长期不用的「测试账号」。
- 关闭后台的匿名访问和游客权限。
- 开启登录验证码、登录失败锁定,限制单 IP 短时间内的尝试次数。
4. 封掉漏洞入口
在 Nginx 里拦掉攻击常用路径,同时把后台限制到固定的办公 IP:
# 上传目录禁止执行任何脚本(这条最重要)
location ~* ^/(uploads|weapp)/.*\.(php|php5|phtml|phar|asp|aspx|jsp)$ {
deny all;
}
# data 目录不该被外部直接访问
location ~ ^/data/ {
deny all;
}
# 拦掉 .git / .env 这类敏感文件
location ~ /\.(git|env|svn|htaccess) {
deny all;
}
# 后台限制到办公固定 IP(把 1.2.3.4 换成你自己的出口 IP)
location ~ ^/(admin|login)\.php$ {
allow 1.2.3.4;
deny all;
}
改完记得 nginx -t 测试再 reload,别直接重启生产。
如果站点已经被扫出问题、又不确定清干净了,稳妥做法是先临时下线(改 hosts 或加维护页),处理完再放出来。搜索排名掉几天,比被人挂马几个月好。
四、根治:升级,或者迁走
应急只是止血。旧版易优的安全问题,根治手段只有一个:升到官方最新稳定版。
1. 能升级就升级
- 版本明显偏低的,先升到官方最新的稳定版。
- 升级前照例先备份。
- 升级后重新跑一遍查马——因为升级不会自动清掉之前种下的木马。
- 所有破解版、修改版、第三方非官方插件和主题,全部换成官方正版资源。
2. 升级不了怎么办
现实中经常升不了:二次开发改得太多、模板不兼容、客户有新功能依赖旧结构。这时候只能手动补:
| 问题 | 手动处置方向 |
|---|---|
| 文件上传 | 强制校验扩展名 + MIME 类型,只放行图片,限制文件大小和命名 |
| SQL 注入 | 所有前后台传参做转义过滤,开启全局参数净化 |
| 命令执行 | 关闭前台模板编辑权限,限制后台模板写代码 |
| XSS | 用户输入输出一律做 HTML 转义,过滤脚本标签 |
但要清楚:手动补是拖时间,不是解决。旧版没公开的问题你补不到,下一个漏洞出来还得再补一次。
3. 什么时候该考虑迁走
我们自己的判断标准是这三条——任意一条成立,就值得评估迁移而不是继续修:
- 站点已经被入侵过一次以上,清干净了又被挂马;
- 程序被改得自己都说不清改了哪里,升级必然出问题;
- 站点的核心价值在内容和收录,而不是那套 CMS 本身的功能。
第 3 条最关键。如果这个站主要是给海外客户看的询盘站,那么内容、收录、询盘流程才是资产,CMS 只是容器——把内容迁到一个长期维护、生态成熟、能持续升级的系统上,比守着旧版本每年补漏洞划算。
五、服务端加固:权限 + 解析规则
这部分是底层防护,配置对了能挡掉一大批利用。
1. 权限原则
核心程序只读,上传目录可写但不可执行。
很多教程写 chmod -R 0444 目录,这在 Linux 上会把目录也变成不可进入(目录需要 x 权限才能访问),改完后台可能直接打不开。正确做法是文件和目录分开处理:
# 目录:只读 + 可进入(5 = r-x)
find data/weapp data/model public -type d -exec chmod 0555 {} \;
# 文件:只读(4 = r--)
find data/weapp data/model public -type f -exec chmod 0444 {} \;
# 上传目录:可读写,但不给执行
find uploads -type d -exec chmod 0755 {} \;
find uploads -type f -exec chmod 0644 {} \;
# 入口文件只读
chmod 0444 index.php
三点提醒:
- 改之前先在测试环境验证。不同版本对某个目录的读写要求不一样,改错会导致后台报错。
- 文件属主要跟 PHP 运行用户一致(通常是
www),否则权限再对也读不了。 - 光靠权限不够:Linux 权限管不住「PHP 进程自己解析上传的脚本」,一定要配合上面那条 Nginx
deny规则一起用。
2. 让网站运行账号降权
站点不要用 root 或管理员账号跑。单独开一个只能读写站点目录的账号,这样即使被 Getshell,攻击者拿到的也只是一个受限账号,不是整个服务器。
3. Windows 服务器
没有 chmod,在文件属性 → 安全里手动配:取消匿名用户(IUSR / IIS_IUSRS)对程序目录的写入和执行权限,只给上传目录写权限。
六、后台与日常运维强化
- 开扫码登录:装官方扫码登录类插件,关掉账号密码登录入口,密码爆破这条路直接堵死。
- 开插件安装密码:旧版默认没有插件安装验证,等于谁进后台谁能装东西。务必开启密码验证。
- 改后台路径:把默认的
/admin或/login.php换掉,能挡掉大量自动化扫描。 - 装安全防护插件:官方有安全类插件,可以拦 SQL 注入、XSS、恶意扫描和漏洞探测。
- 每周查马:用系统助手扫一遍全站,跟官方原版对比文件完整性。
- 每日备份:源码 + 数据库,自动备份并且异地留一份。备份存在同一台服务器上等于没备。
- 接 WAF / CDN:拦批量扫描、CC 攻击和异常 IP。这是补充手段,不能替代升级。
七、自查:怎么判断已经被入侵了
下面六个信号,中一个就该立刻排查。
| 信号 | 具体表现 |
|---|---|
| 文件异常 | 目录里出现不该有的 PHP 文件,或正常文件被最近改过 |
| 搜索异常 | 搜 site:你的域名 出现博彩、色情、代孕等无关词 |
| 收录异常 | 索引量突然暴涨或暴跌,多出大量陌生 URL |
| 后台异常 | 多出陌生管理员账号,插件列表里有没装过的插件 |
| 服务器异常 | CPU、内存、流量在没访问量时异常升高 |
| 首页异常 | 页面被插入隐藏链接、JS 跳转,或被加了用户看不见的层 |
两个能直接用的排查命令(在站点根目录执行):
# 找出最近 7 天被修改过的 PHP 文件(注意排除缓存和日志目录)
find . -name "*.php" -mtime -7 -not -path "./runtime/*" -not -path "./cache/*"
# 粗筛可疑代码特征(会有误报,命中后逐个人工看)
grep -rEl "eval\(|assert\(|base64_decode\(|gzinflate\(|shell_exec\(|passthru\(" \
--include="*.php" .
grep 那条会命中正常的框架代码和加密类库,误报很正常,它的作用是把范围从几万个文件缩到几十个,剩下的靠人工判断。
八、已经中招了:恢复顺序
顺序比动作重要,跳步容易处理不干净。
- 先断攻击通道,不是先删文件。把站临时下线或封掉攻击 IP,否则你一边清它一边重新种。
- 完整备份现场(源码 + 数据库 + 日志)。这份备份不是用来恢复的,是用来查入侵时间点和入口的。别急着删。
- 清理木马:按上文第三节查马,同时还原被篡改的核心文件和模板。
- 改所有密码:后台账号、数据库密码、FTP、服务器 SSH、面板账号。全部改,因为不清楚泄露了哪一个。
- 补漏洞:升级到最新版,或至少把手动补丁打上。不补漏洞,前面全白做。
- 确认干净后再上线,上线后连续观察一周的日志和文件变动。
- 搜索引擎申诉:如果站点被搜出违规词,在做完清理后到 Google Search Console、百度搜索资源平台提交申诉,请求重新抓取。这一步不做,可能会挂着黑帽标记很久。
九、长期建议
- 不用破解版。省下的授权费,抵不上一次被挂马的损失。
- 保持升级。安全补丁是厂商免费给你的,不装是浪费。
- 后台不裸奔。改路径、限 IP、开二次验证,三件事一起做。
- 源码和数据在自己手里。这样才能自己升级、自己排查、换服务商的时候走得掉。
- 备份要异地。同一台服务器上的备份,在服务器被控时等于不存在。
旧版易优的安全问题,根源是版本老旧、校验缺失、权限过宽、用了盗版资源这四件事。处置优先级也一样:
升级(根治)> 权限加固(底层)> 代码手动修补(兜底)> 防火墙拦截(辅助)> 日常运维(长效)
临时防护只能挡批量攻击。真正把风险清掉,还是得升到官方最新正版,再配上规范的权限和运维。
如果你手上的站是旧版易优、又不确定该升级还是该迁走,可以把当前版本号、有没有二次开发、被入侵过没有这三条发到 联系页,我们帮你判断值不值得救。旧站改造和数据迁移属于 企业定制 的范围,会先出范围说明再开工。电话 0755-28896137,深圳客户可以到龙华大浪当面把后台打开一起看。