当前位置:首页 >> 网站木马清理

还在用ThinkPHP5?再不加固就晚了:网站防护与服务器维护实战

发布时间:2026-08-20 作者:吉安市云尚网络
简介 ThinkPHP5存在多个高危漏洞且已停维,网站防护与服务器维护迫在眉睫。本文提供可落地的ThinkPHP5安全加固方案、网站防护措施与服务器维护清单。


还在用ThinkPHP5?再不加固就晚了:网站防护与服务器维护实战

凌晨三点,服务器CPU告警——从5%飙到98%。登录一看,根目录多了好几个陌生的.php文件,runtime/cache/目录里被写入了WebShell。攻击者用的是ThinkPHP 5.0.23的远程代码执行漏洞(CVE-2018-25270,CVSS 9.8),无需任何身份验证,直接通过路由参数执行了任意PHP代码。


这不是故事,是2026年还在批量发生的真实攻击。


如果你还在用ThinkPHP5,这篇文章是写给你的。


一、ThinkPHP5:一个“停维”的框架,一堆“公开”的漏洞

ThinkPHP 5.0.24已终止维护,官方早已停止支持。 这意味着之后发现的所有漏洞——包括但不限于以下三类——全都没有官方补丁:


1. HTTP方法伪造(CVE-2018-20062):攻击者通过_method参数伪造请求方法,绕过路由校验。


2. 缓存文件包含RCE(CVE-2025-63888):view()函数允许用户控制模板路径,攻击者上传恶意图片后通过模板包含实现远程代码执行。ThinkPHP 5.0.0–5.0.10版本中,缓存键可控+换行注入可直接写入WebShell到runtime/cache/目录。


3. 反序列化链RCE:Windows.php的__destruct触发file_exists,进而调用__toString形成POP链,最终执行用户可控的闭包函数。


TP5.0.24的漏洞不是“一个”,而是三类可独立利用的漏洞共存。


受影响版本速查

版本范围 漏洞 状态

5.0.0–5.0.23 CVE-2018-25270 RCE(CVSS 9.8) 已停维,无补丁

5.0.24 CVE-2025-63888 模板RCE 已停维,无补丁

5.1.x CVE-2025-50706 RCE 已停维,无补丁

3.2.x 缓存RCE 已停维,无补丁

一句话结论:如果还在用ThinkPHP 5.x,升级到TP6.1 LTS或TP8.x是唯一根本解决方案。TP5.x打再多补丁也防不住2026年的新型攻击。


二、网站防护:如果暂时升不了级,至少做这三件事

如果因为各种原因暂时无法升级,以下措施能挡住绝大多数自动化攻击。


1. 立即关闭调试模式并锁定日志

攻击者通常从调试信息和日志文件入手。


php

// app.php 或 extra/debug.php

'debug' => false

清空runtime/log/目录,并在Nginx中禁止直接访问:


nginx

location ~ ^/runtime/.*\.(log|php)$ { deny all; }

在public/index.php开头拦截调试参数:


php

// 移除所有含 debug、showsql、test 的 GET/POST 参数

2. 开启强制路由 + 输入过滤

关闭动态路由匹配,禁用/:controller/:action模式:


php

// route.php

'url_route_on' => true

所有外部输入必须过滤:


数值型:intval()或filter_var($v, FILTER_VALIDATE_INT)


字符串:先用htmlspecialchars(),再用正则限定允许字符


3. 禁用危险函数

在php.ini中配置:


ini

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,assert,eval

4. 部署WAF拦截恶意请求

在Web服务器层加设WAF规则,拦截含以下特征的请求:


_method=__construct


filter[]=


class=


unserialize(


php://filter


phar://


5. 设置public为唯一对外访问目录

不要把资源文件放入应用目录。public目录为Web可访问目录,其他文件放到非Web访问目录下面。


6. 开启表单令牌验证

开启表单令牌机制,防范CSRF攻击。


三、服务器维护:把地基补牢

网站代码修得再好,服务器本身千疮百孔也是白搭。以下是2026年Linux服务器的安全维护清单。


⚠️ 执行任何操作前,先创建服务器快照!


1. SSH加固(优先级最高)

禁用root直接登录——root是所有Linux服务器的默认管理员账号,也是暴力破解的首要目标。修改/etc/ssh/sshd_config:


text

PermitRootLogin no

使用SSH密钥认证,禁用密码登录。


修改SSH默认22端口——能过滤掉99%的自动化扫描。


2. 防火墙:只开必要的门

只开放业务必需端口——80、443,再加一个改过端口号的SSH。其他端口全部关掉。


3. 安装Fail2Ban或CrowdSec

自动封禁暴力破解IP。


4. 启用自动安全更新

5. 文件权限最小化

ThinkPHP的敏感目录(application、config、runtime)必须在项目根目录设防。Nginx下必须用:


nginx

location ^~ /application/ { deny all; }

不能用正则匹配,否则规则可能被绕过。


四、万一被入侵了:应急响应的正确姿势

如果发现服务器已经被入侵,前30分钟的处理方式决定了最终损失有多大。


❌ 千万别做

不要重启服务器——会清除内存中的关键信息


不要直接断网——断网前没做网络连接快照,就无法定位攻击者的C2通信


✅ 正确流程

保全证据:备份/var/log/下的系统日志、Web访问日志、PHP错误日志,记录进程列表和网络连接


隔离:通过防火墙限制访问,将受影响服务器从核心业务网络中隔离出来


排查:通过日志分析确定入侵点、影响范围和后门


清除:终止恶意进程、删除WebShell、清除异常定时任务


加固:修复被利用的漏洞,重置所有密码


五、把三件事串起来

层面 做什么 为什么重要

ThinkPHP5 升级到TP8.x或TP6.1 LTS,或执行上述加固措施 堵住框架层面的漏洞入口

网站防护 关闭调试、强制路由、禁用危险函数、部署WAF 挡住正在来的攻击

服务器维护 SSH加固、防火墙、Fail2Ban、权限最小化 让攻击者进来了也走不远

2026年的攻击节奏已经是“小时级”了。 CVE-2018-25270的利用代码在互联网上“唾手可得”,自动化攻击脚本24小时不间断地扫描全网存在漏洞的站点。


你的防护体系,也要跟上这个速度。


【植入点①】如果您还在用ThinkPHP5、不确定当前版本是否安全,或者服务器被入侵了不知道怎么处置,吉安云尚网络科技有限公司提供免费安全检测——先出报告、确认风险、再决定是否修复。微信:yswl898。


【植入点②】我们提供ThinkPHP5安全加固、网站防护部署与服务器维护服务,覆盖从框架加固到WAF部署到服务器运维的全流程。联系电话:18316973247。


【植入点③】吉安云尚网络科技有限公司,专注PHP网站安全与服务器运维,客户覆盖电商、教育、医疗、金融等行业,支持全国远程服务。如需ThinkPHP5加固、网站防护或服务器维护服务,欢迎随时联系。