本教程将从 “事前预防”、“事中防御” 和 “事后处理” 三个层面,结合 DedeCMS 的特点,为您提供一套完整的安全解决方案。

第一部分:事前预防 - 坚固你的“城墙”
这是最重要的一步,良好的预防措施可以抵御 90% 以上的攻击。
核心原则:保持核心和插件更新
- 为什么重要? DedeCMS 官方团队会不断发现并修复旧版本中的安全漏洞,黑客正是利用这些已知漏洞来攻击网站的。
- 如何操作?
- 定期登录 DedeCMS 后台,检查是否有新的核心版本或补丁发布。
- 及时更新到最新的稳定版。(重要提示:更新前务必备份数据库和网站程序!)
- 对于非官方的第三方插件,也要关注其作者的更新和安全通告。
服务器环境安全配置
-
使用安全的 PHP 版本: 确保你的服务器运行的是稳定且带有最新安全补丁的 PHP 版本(建议 PHP 7.x 或更高,避免使用已停止维护的 PHP 5.x)。
-
设置安全的文件和目录权限:
- 目录权限: 建议设置为
755。 - 文件权限: 建议设置为
644。 /data目录: 这是存放数据库配置文件config.php的核心目录,权限应设置为755或750,确保Others用户没有写入和执行权限。/dede目录(后台目录): 强烈建议将后台目录重命名,并设置访问密码(通过服务器控制面板如 cPanel/Plesk 或.htaccess实现)。/uploads等上传目录: 这是黑客最常攻击的目标,务必确保该目录下的文件执行权限被关闭,最简单的方法是在该目录下创建一个空的index.html或index.php文件,防止目录被列表浏览,更高级的做法是在php.ini中设置open_basedir或通过.htaccess限制执行权限。
.htaccess示例(限制uploads目录下 PHP 文件的执行):
(图片来源网络,侵删)<Files "*.php"> Order Deny,Allow Deny from all </Files> - 目录权限: 建议设置为
密码安全
- 后台管理员密码: 使用足够复杂的密码(包含大小写字母、数字、特殊符号,长度不少于 12 位)。
- FTP/SFTP 密码: 同样要复杂,并且不要和后台密码一样。
- 数据库密码: 设置强密码,不要使用简单的默认密码如
root,123456等。 - 定期更换密码: 养成定期更换重要密码的习惯。
删除不必要的文件和目录
- 安装目录
/install: 网站安装完成后,务必删除这个目录,这是巨大的安全隐患。 - 演示数据: 安装时生成的默认演示文章、分类等,如果不需要,请及时清理。
- 冗余文件: 删除不需要的插件、模板和旧版本的文件。
第二部分:事中防御 - 部署你的“护城河”
即使预防做得再好,也可能被攻击,防御措施可以在攻击发生时进行拦截和告警。
修改默认后台目录和入口
- 修改后台目录名: 这是最简单有效的手段之一,将
/dede目录重命名为一个别人猜不到的名字,如myadmin2025。 - 修改后台入口文件名: 进入后台后,
系统->系统基本参数->核心设置,找到“后台默认文件名”,将其修改为自定义的名称,如login.php。
使用安全插件(推荐)
DedeCMS 生态中有一些优秀的安全插件,可以大大增强网站安全性。
- DedeCMS安全狗 / 江哥DedeCMS安全助手: 这类插件通常提供以下功能:
- 登录防护: 限制后台登录失败次数,防止暴力破解。
- 文件监控: 实时监控关键文件(如
config.php,index.php)是否被篡改。 - SQL注入防御: 过滤恶意 SQL 查询。
- 扫描后门: 定期扫描网站文件,查找可疑的木马文件。
- 操作日志: 记录所有后台关键操作,方便追溯。
如何使用: 在 DedeCMS 官方应用市场或第三方可信来源下载,然后按说明安装和配置。
配置服务器级别的安全防护
- 使用 Web 应用防火墙: 如果你的服务器是云服务器(如阿里云、腾讯云),强烈建议开启它们自带的 WAF 服务,WAF 可以在恶意请求到达网站程序之前就进行拦截。
- 配置
.htaccess(Apache 环境):- 防止目录遍历:
Options -Indexes
- 防止一些常见攻击:
# 防止SQL注入 RewriteCond %{QUERY_STRING} (\.\.\/|\.\./ [NC,OR] RewriteCond %{QUERY_STRING} (base64|echo|concat|select|insert|delete|update|union|into|load_file|outfile) [NC,OR] RewriteCond %{QUERY_STRING} (mosConfig_[a-zA-Z_]{1,21}(=|%3D)) [NC,OR] RewriteCond %{QUERY_STRING} (base64|eval) [NC,OR] RewriteCond %{QUERY_STRING} (GLOBALS|_REQUEST) [NC] RewriteRule ^(.*)$ index.php [F,L]
- 防止目录遍历:
定期备份数据
- 为什么重要? 这是最后的防线,即使网站被挂马,你也可以通过备份快速恢复,将损失降到最低。
- 如何操作?
- 数据库备份: 定期通过 DedeCMS 后台
系统->数据库备份/恢复功能导出数据库文件,并保存到本地。 - 程序文件备份: 定期将整个网站程序打包下载。
- 自动化备份: 如果服务器支持,可以设置定时任务(Cron Job),自动将备份文件发送到你的邮箱或云存储。
- 数据库备份: 定期通过 DedeCMS 后台
第三部分:事后处理 - 清理“病毒”并修复“伤口”
如果不幸发现网站被挂马了,不要慌张,按以下步骤处理:

立即隔离
- 断开连接: 立即将网站从服务器上暂时下线,防止更多访问者受害。
- 修改密码: 立即修改所有相关密码:FTP密码、数据库密码、后台管理员密码、主机控制面板密码。
定位挂马文件
这是最关键的一步,黑客通常会在网站的公共文件(如首页、列表页、内容页)中插入恶意 手动检查(适用于小网站) 使用工具(推荐,高效准确) 这个命令会帮你快速定位到包含恶意代码的文件。 DedeCMS 防挂马的核心思想是:“纵深防御”。 安全是一个持续的过程,没有一劳永逸的解决方案,养成良好的安全习惯,才是保护你网站的最佳方式。<iframe>、<script> 或 <meta>
index.php 和其他重要页面文件。iframe, script, http:// (特别是可疑的短域名), .cn, .tk 等后缀的域名。<?php ... ?> 和结尾 ?> 之间,以及 HTML 代码中是否有异常的代码。
# 在网站根目录下执行,查找包含 "iframe" 或 "eval" 的文件
grep -r "iframe" . --include="*.php" --include="*.html"
grep -r "eval" . --include="*.php" --include="*.html"
清理和修复
dede_arctitle 等表的内容,在文章内容里插入挂马链接,登录数据库,使用 SELECT 语句查询 body 或 description 字段是否包含可疑的 <script> 或 <iframe> 标签,并清理。查找并修复漏洞
重新上线并监控
