Linux环境下 ThinkPHP 安全漏洞防范
一 版本与补丁管理
二 框架与代码层加固
三 运行环境与服务器防护
四 文件上传与 Webshell 防护
五 常见漏洞与处置要点
| 漏洞类型 | 典型触发或示例 | 处置要点 |
|---|---|---|
| 远程代码执行 RCE | 利用 ?s=index/\think\app/invokefunction 调用 system/phpinfo 等 | 升级至修复版本;开启强制路由;过滤控制器名与方法名;禁用危险函数 |
| 路由解析/方法调用问题 | 未开启强制路由时通过 ?s= 调度到任意类方法 | 开启强制路由与白名单;对控制器名做正则校验(如禁止 ** 与非法字符) |
| SQL 注入 | 拼接 SQL、未使用参数化查询 | 全量使用参数化/ORM;输入校验与类型约束 |
| 任意文件包含/读取 | 通过 Lang/load、Config/load 包含任意文件 | 升级修复;限制包含路径;校验文件后缀与类型 |
| 信息泄露与日志泄露 | 开启 app_debug 或可直接访问 runtime/log | 关闭调试;禁止访问日志与缓存目录;脱敏错误信息 |
| 文件上传 Webshell | 上传 .php 脚本或可解析文件 | 白名单校验、重命名、隔离存储、禁止执行、内容扫描与行为监测 |