网上的网站源码质量参差不齐,“破解版”“去授权版”里被植入后门的情况并不少见。上线之前花半小时检查一遍,比被入侵之后再处理省事得多。
1. 搜索常见的后门特征
以 PHP 项目为例,在源码根目录执行:
Bash
grep -rnE 'eval\(|assert\(|base64_decode\(|gzinflate\(|str_rot13\(' --include=*.php .
grep -rnE '\$_(GET|POST|REQUEST|COOKIE)' --include=*.php . | grep -E 'eval|assert|system|exec|passthru'命中不一定就是后门,有些正常代码也会用到这些函数,但每一处都要看清楚它在做什么。特别留意经过多层编码、看不出含义的长字符串。
2. 检查对外的请求
搜索 curl_init、file_get_contents('http 和页面里引用的外部 JS,确认程序会连接哪些地址。来历不明的统计代码和“授权验证”地址要格外小心。
3. 安装后的收尾
- 修改默认的管理员账号和密码,能改后台路径的话也改掉。
- 删除安装目录(如
install/)和演示数据。 - 文件权限:Web 进程只对上传和缓存目录可写,其余目录只读。
4. 上传目录禁止执行脚本
Nginx
location ~* ^/uploads/.*\.php$ {
deny all;
}5. 依赖和备份
用 Composer 或 npm 管理依赖的项目,提交锁文件,运行一次 composer audit 或 npm audit 看看有没有已知漏洞。先在本地或测试机上跑通,再部署到生产环境;上线后定期备份数据库和上传目录。