用织梦CMS给公益组织搭官网,是很多NGO技术志愿者的首选——模板多、上手快、成本低,但织梦的历史漏洞也确实不少,尤其是NGO站点常被挂马、篡改,甚至被拿来做跳板,下面我以多年运维织梦的经验,按“先堵漏、再加固、后应急”的思路,给普通站长一套能落地的方案。
织梦CMS搭建NGO站点,安全加固与应急恢复实战指南
织梦常见安全漏洞分析
织梦被攻击,八成绕不开这几个点:
- 后台弱口令与默认路径:
/dede/是默认后台目录,攻击者直接用工具扫,加上很多站长用admin、123456这类密码,直接就被撞开了。 - SQL注入:老版本织梦的
plus/目录下很多文件过滤不严,plus/recommend.php、plus/search.php,构造参数就能注入。 - 文件上传漏洞:
dede/uploadsafe.php等文件配置不当,或编辑器(如FCKeditor)未删除,可上传php木马。 - 变量覆盖与远程包含:早期版本
common.inc.php存在变量覆盖,配合allow_url_include可远程执行代码。 - 模板挂马:攻击者拿到后台后,直接在模板里插入一句话木马,隐蔽性强,普通扫描很难发现。
别被这些名词吓到,下面每一步都能手动操作。
后台安全设置步骤
- 改后台目录:把
/dede/改成只有你知道的名字,/npo-admin-2024/,改完后编辑/data/common.inc.php里的$cfg_admin_channel和$cfg_admin_path对应修改。 - 强密码+验证码:后台密码至少12位,大小写+数字+符号,后台登录开启验证码(系统→系统基本参数→开启验证码)。
- 限制登录IP:在后台“系统→管理员”里,给管理员账号绑定固定IP(如果办公室有固定IP),没有固定IP就用
.htaccess限制后台目录只允许特定IP段访问。 - 关闭注册与投稿:NGO站一般不需要用户注册,后台“系统→会员设置”里关闭注册;“系统→频道模型”里关闭前台投稿。
- 删除无用功能:后台“模块→模块管理”里,卸载“友情链接”“投票”“留言板”等不用的模块,减少攻击面。
文件权限与目录加固
这是最关键的一步,很多站长忽略:
- 目录权限:
/data/、/uploads/、/templets/设为755;/data/common.inc.php设为644,且不要可写。 - 禁止执行PHP:在
/uploads/和/data/下放一个.htaccess文件,内容:php_flag engine off <FilesMatch "\.(php|php5|phtml)$"> Order allow,deny Deny from all </FilesMatch>如果是Nginx,在站点配置里加:
location ~* ^/(uploads|data)/.*\.(php|php5)$ { deny all; } - 关闭危险函数:在php.ini里禁用
exec、system、passthru、shell_exec、eval等(如果虚拟主机不能改,就跳过,但前面两步必须做)。 - 删除安装目录:安装完立刻删除
/install/整个目录。 - 关闭错误显示:
php.ini里display_errors = Off,避免暴露路径。
被黑后排查与恢复方案
发现首页被篡改、跳转博彩站,别慌,按顺序来:
- 断网隔离:先关站或改数据库密码,防止继续被写入。
- 查后门:用
D盾或河马查杀扫描整站,重点看/data/、/uploads/、/templets/下的可疑php文件,也可以用命令找最近修改的文件:find /wwwroot -mtime -7 -name "*.php" - 查模板:打开
/templets/default/下所有.htm文件,搜eval、assert、base64_decode、<script src=等关键词。 - 查数据库:用phpMyAdmin看
dede_archives表,有没有被插入恶意链接;看dede_admin表,有没有多出管理员账号。 - 恢复:从备份恢复被改文件,如果没有备份,先手动清理后门,再用官方原版覆盖
/dede/、/include/、/plus/等核心目录(注意保留data/common.inc.php)。 - 改所有密码:数据库密码、后台密码、FTP密码全部换新。
日常维护检查清单
- 每周:登录后台看“系统→系统日志”,有没有异常登录;检查
/data/下有没有新增奇怪文件。 - 每月:用D盾扫一次全站;检查
templets目录修改时间;更新织梦补丁(官网已停更,可关注社区安全补丁)。 - 每季度:完整备份一次(数据库+文件),备份文件存到非web目录。
- 长期:保持PHP版本在7.4以上(织梦需打补丁),开启HTTPS,关闭不用的端口。
NGO站点被黑,往往不是因为有人盯着你,而是攻击者批量扫描,做好上面这些,你的站就能挡住99%的自动化攻击,安全不是一次性的,是习惯。



发表评论