织梦DedeCMS漏洞防护,老站点安全加固
老站点跑着织梦DedeCMS,最怕的就是被上传后门、篡改首页或挂马跳转。
这类问题多数不是服务器被攻破,而是程序本身的已知漏洞被扫描器批量利用。
下面这套加固流程,适合还在用DedeCMS、但又不想马上换程序的老站点运维人员,按顺序做完能明显减少被入侵的概率。
加固前先备份,别急着改文件
动手之前必须先备份,否则一旦改错配置或覆盖文件,恢复会很麻烦。
- 备份整站文件:把网站根目录打包到本地或另一块磁盘,命令示例:
tar -czf /backup/dede_site_$(date +%F).tar.gz /www/wwwroot/你的站点目录 - 备份数据库:宝塔面板进入“数据库”找到对应库,点“备份”;命令行可用
mysqldump -u用户名 -p 数据库名 > /backup/dede_db_$(date +%F).sql - 记录当前版本:登录DedeCMS后台,在“系统”里查看版本号,或查看
/data/admin/ver.txt。不同版本补丁不同,建议以官方发布页为准。
判断条件:如果站点已经出现异常文件、首页被篡改或搜索引擎提示风险,先不要直接加固,应先做入侵排查,确认没有后门再操作。
先封堵最常被利用的几个入口
织梦被利用最多的几个点,集中在后台登录、文件上传和模板解析。
老站点优先处理这几处,性价比最高。
后台管理目录改名
默认后台目录是 /dede/,扫描器会直接尝试访问。
把它改成随机名字:
- 在宝塔文件管理里,把网站根目录下的
dede文件夹重命名为比如manage_7x2k - 打开
/data/common.inc.php,找到$cfg_admin_dir或相关后台路径配置,改成新目录名 - 登录后台后,在“系统 > 系统基本参数”里确认后台地址已同步
改完后用旧地址 /dede/ 访问,应返回404或跳转,说明生效。
关闭不必要的文件上传类型
进入后台“系统 > 系统基本参数 > 附件设置”,检查允许上传的文件类型。
- 移除
php、phtml、php5、asp、jsp等可执行后缀 - 如果业务不需要上传压缩包,也建议去掉
zip、rar,减少被上传后解析的风险 - 保存后,到前台尝试上传一个
.php文件,应提示不允许
限制后台登录来源
如果服务器有固定出口IP,可以在Nginx里限制后台目录只允许指定IP访问:
location ^~ /manage_7x2k/ {
allow 你的办公IP;
deny all;
}
改完执行 nginx -t 测试,再 nginx -s reload。
用非白名单IP访问后台,应返回403。
目录权限和敏感文件处理
权限过大是很多老站点的通病,尤其是 data、uploads 这些可写目录。
- 网站根目录建议属主为运行用户,目录权限
755,文件权限644 data、uploads、html等需要写入的目录可保持755,但不要给777- 如果用的是宝塔,可在“文件”里右键目录选“权限”,或命令行执行:
chown -R www:www /www/wwwroot/你的站点目录 && chmod -R 755 /www/wwwroot/你的站点目录 && find /www/wwwroot/你的站点目录 -type f -exec chmod 644 {} \;
另外,
检查根目录下是否存在 install、setup 等安装目录,
安装完成后应删除或改名。data/admin/ver.txt 如果暴露版本号,
也可考虑在Nginx里禁止直接访问。
补丁与组件更新要分清主次
DedeCMS老版本很多漏洞已有公开补丁,但并不是所有站点都能直接升级到最新版。
- 先到官方渠道核对当前版本对应的安全补丁,不要从第三方下载来源不明的“补丁包”
- 如果无法升级主程序,至少替换官方已修复的对应文件,替换前比对文件哈希
- PHP版本不要过老,PHP 5.3、5.4 已停止维护,建议在兼容前提下升级到受支持的PHP版本
- 关闭PHP危险函数:在
php.ini中设置disable_functions = exec,passthru,shell_exec,system,proc_open,popen,改完重启PHP服务
判断条件:如果站点使用了大量老插件或自定义模板,升级前先在测试环境验证,避免升级后白屏或功能异常。
加一层监控,及时发现异常
加固不是一次性工作,老站点更需要持续观察。
- 开启网站访问日志,定期检查是否有大量
POST到plus、dede目录的请求 - 用
find /www/wwwroot/你的站点目录 -name "*.php" -mtime -1查看最近一天被修改的PHP文件,重点看uploads、data目录下是否出现PHP文件 - 如果服务器有宝塔,可开启“网站防火墙”或“防篡改”功能,对核心目录加保护
- 定期对比文件哈希,发现核心文件被改动及时排查
预期结果:正常运营的站点,核心程序文件不应频繁变动。
如果发现 uploads 目录里冒出 .php 文件,基本可以判定被上传了后门,需要立即隔离并排查。
几个容易踩的坑
- 后台目录改名后忘记同步配置文件,导致无法登录,改之前先记好原配置
- 权限一次性给
777,图省事但留下大隐患,按需给写权限即可 - 只改后台密码,不处理上传和模板解析漏洞,等于没加固
- 补丁来源不明,可能本身带后门,务必从官方或可信渠道获取
- 加固后不验证,以为改了就安全,实际配置可能没生效
最后提醒一句:如果你的DedeCMS站点已经非常老旧、插件依赖复杂,且没有专人维护,长期看迁移到仍在维护的CMS或静态化方案会更省心。
加固只能降低风险,不能替代持续维护。