ThinkPHP是国内站长的老朋友,也是老漏洞的重灾区。5.x早期版本暴露过多次高危问题,比如远程代码执行、控制器任意调用。最坑的是很多站上线后没再更新过框架,漏洞一直躺在那儿。

自查第一步是确认版本。ThinkPHP 5.0.x/5.1.x低于特定小版本就要升级。先把composer.lock或者框架目录里的base.php版本号翻出来,再对照官方安全公告。
# 快速查看当前ThinkPHP版本
grep -r "VERSION" vendor/topthink/framework/src/think/App.php
# 或者看composer.lock
grep -A1 '"name": "topthink/framework"' composer.lock
自查第二步是限制后台入口。把admin、manage这些路径用Nginx做IP白名单或者加HTTP基本认证,别让搜索引擎随便扫到。同时关闭debug模式,runtime目录禁止执行脚本。
# Nginx中禁止访问敏感路径
location ~* ^/(application|extend|runtime|thinkphp|vendor)/ {
deny all;
}
# 禁止执行上传目录里的PHP
location ~* ^/upload/.*\.(php|php5|phtml)$ {
deny all;
}
最后一条容易被忽略:不要用默认的应用名和入口。很多扫描器直接请求/index.php/admin/login或者/index.php?s=/admin,你把后台入口改名,就能挡住一大半批量攻击。
数据来源:ThinkPHP官方安全公告及topthink/framework GitHub仓库版本更新记录
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
