还在用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加固、网站防护或服务器维护服务,欢迎随时联系。
推荐阅读
- 漏洞修复方案怎么做?紧急高危漏洞修复与网站整改指南 2026-09-30
- 服务器安全扫描揪出公司网站被黑真相 2026-09-30
- 网站安全防护怎么做?木马查杀与PHP代码调试 2026-09-30
- 公司网站维护怎么做?网站安全防护与修改代码指南 2026-09-29
- 备案注销、木马查杀、源码后门——找对团队才省心 2026-09-28


