你是不是也遇到过这种情况:早上打开网站,发现首页被挂了一堆花花绿绿的赌博广告;或者后台登录页面怎么都进不去,提示密码错误;更糟的是,百度收录里突然多出几百个“XX药业官网”的页面链接——而你的站只是个卖手工艺品的个人博客。
织梦CMS站点防黑实操手册,从漏洞堵截到被黑自救的全流程指南
作为一个每天和织梦(DedeCMS)打交道的老运维,我可以负责任地告诉你:90%的织梦站被黑,不是黑客技术多高明,而是站长自己把门敞开了。 今天我不讲虚的,直接上干货,从漏洞堵截到被黑自救,手把手教你把自己练成站点的“保安队长”。
常见安全漏洞剖析:先知道敌人从哪进来
织梦老版本(5.7 SP2之前)有一个典型的SQL注入漏洞,黑客通过伪造plus/flink.php等文件的参数,能直接读取数据库里的管理员账号密码哈希,就算你已经升级到最新版,如果后台地址还用默认的/dede/,并且管理员用户名是“admin”,那跟挂在门口挂着“欢迎光临”的牌子没区别。
文件上传漏洞也是重灾区,很多站长为了方便,开了会员投稿或者留言功能,但没限制上传文件类型,黑客上传一个伪装成图片的PHP一句话木马,用菜刀工具连上,你的整个服务器就等于裸奔了,还有模板标签注入,凡是能输出内容的标签(dede:sql}),如果没有过滤,黑客提交的恶意代码就会在页面里执行。
记住一个原则:织梦的每一个“自定义”功能,都可能是黑客的“后门”。 越灵活的功能,越需要严格的二次验证。
后台安全设置五步走(5分钟搞定)
打开你的网站后台,按以下顺序操作,每步都别跳过:
- 改后台目录名:在服务器上把
/dede/目录重命名成一串无意义的长字符,比如/w9x2kq7e/,同时修改data/admin/ver.txt文件里的后台入口标识(不同版本路径略有差异,但文件肯定存在),改完建议用无痕浏览器访问新地址测试,避免缓存问题。 - 强制使用强密码:进入“系统-系统用户”,把admin账号的密码改成至少16位,包含大小写字母、数字、特殊符号的组合,如果有多余的管理员账号,全部删除,只保留一个。不要用生日、手机号、网站域名作为密码后缀,这种密码在黑客的字典表里一跑就破。
- 开启登录验证码:在“系统-系统基本参数-安全选项”里,把后台登录验证码设为“开启”,并且勾选“验证码包含字母和数字”,这在很大程度上防止暴力破解。
- 关闭不必要功能:如果你不用会员系统,就去“会员”菜单里把所有相关模块全部停用;如果你不采集,把“采集”功能关闭,每一扇关闭的门,都是堵死的一条路。
- 修改后台Session有效时间:把“系统-系统基本参数-性能选项”里的“后台会话超时时间”从默认的3600秒改成600秒,这样即使你忘了退出登录,黑客也无法长时间占用你的会话。
文件权限与目录加固:给服务器套上锁
在服务器上用FTP或宝塔面板操作,按照“最小权限”原则:
- 可写目录(需要上传文件的) 如
/uploads/、/data/、/templets/,设置权限为755(所有者可写,其他只读),并且禁止执行PHP脚本,在Nginx或Apache配置里,加一条规则:location ~* ^/uploads/.*\.(php|php5|phtml)$ { deny all; },这样就算黑客上传了木马,也只是个死文件,跑不起来。 - 类文件(核心代码) 如
/include/、/dede/(改过名后的目录),设置为644(只读),如果你用的是Linux系统,可以执行chattr +i /include/common.inc.php核心配置文件,让它变成不可修改的“钉子户”。 - 特殊文件保护:
/data/common.inc.php这个文件保存着数据库密码,务必设置为只读(444或4444),并且强烈建议在服务器上把该文件的所有者改为root,把/install/安装目录直接删除掉!很多人忘了删这个,黑客可以重新运行安装程序,覆盖你的数据库配置。 - 备份文件清理:很多站长会把
dede.sql或者wwwroot.zip备份放在网站根目录下,这等于把数据库密码直接打包送给黑客,永远不要把备份放在Web可访问的目录里,如果有,立即转移并改名。
被黑后的排查与恢复方案:别慌,照做
如果你发现网站被黑,先用CTRL+C冷静下来,别急着删除文件——那会销毁证据,按以下顺序操作:
- 立即离线:在服务器上把网站目录暂时改名,或者停用Web服务,避免被搜索引擎继续收录坏页面。
- 定位时间点:查看文件被修改的时间,用FTP工具按“修改日期”排序,找最近3天内有改动的文件,特别是
.php文件,用文本编辑器打开这些文件,搜一下有没有eval(、base64_decode(、assert(等函数——凡是出现这类代码的PHP文件,基本可以判定被插入后门。 - 数据库检查:登录phpMyAdmin(如果你能访问),查看
dede_admin表里的管理员记录有没有新增诡异账号;再看看dede_archives文章表里有没有大量标题带“出售”“代开发票”的垃圾文章,有的话,确认是被SQL注入批量插入的。 - 恢复策略:如果你有最近一次安全期的备份(比如一周前),直接把网站目录全部替换成备份版本,数据库也恢复,如果没备份,那只能保留模板效果,删除所有被篡改的文件,并重新上传官方网站下载的同版本原版程序文件覆盖,然后务必立即修改所有密码(FTP、数据库、后台)。
- 扫描入侵源:查看服务器日志(Nginx或Apache的access.log),搜索“POST /uploads/”或者“?id=1 and 1=1”这样的特征关键词,能大概判断黑客是通过哪个入口进来的,如果是通过旧漏洞进来的,赶紧升级织梦到官方最新补丁;如果是通过社工猜到了密码,那说明你的密码太弱,按上面第二步重新设置。
日常维护检查清单(每月做一遍)
养兵千日用兵一时,把这套检查当成习惯:
- 周一:登录后台,确认没有陌生管理员账号;查看“系统日志”,看看有没有异常登录记录(IP不是你的常用IP)。
- 每周:打开网站首页源代码,用浏览器开发者工具搜索“http://”链接,看看有没有被植入外链广告(通常隐藏在JS文件里)。
- 每月:用命令行或宝塔面板查看网站目录里是否有最近30天修改过的
.php文件(排除你自己上传的模板文件),如有异常,立刻检查。 - 每季度:手动备份整个网站目录和数据库,然后测试一次恢复流程,别等需要用时才发现备份文件是坏的。
- 时刻保持:关注织梦官方论坛或安全公告,一旦发布新补丁,48小时内务必更新,很多黑产团伙专门盯着织梦的补丁发布,第二天就开始批量扫描没打补丁的站。
写在最后
织梦CMS是一座老房子,结构结实,但门窗多、年代久,你不需要成为黑客,只需要像一个细心的房东一样,定期检查门锁、关好窗户、清理杂物间,按照上面这些步骤操作一遍,你会发现——被黑不是运气问题,而是管理问题,从今天开始,把你的站点当成一家小银行来经营,你才能睡得安稳。



发表评论