dede5.7防站手册,如何有效防止网站被攻击?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 DEDE建站 正文

DedeCMS 5.7 是一个非常经典和流行的版本,但由于其发布时间较早,存在一些已知的安全漏洞,本手册将从服务器环境配置、程序文件加固、数据库安全、日常运维等多个维度,为您提供一套完整的安全加固方案。

dede5.7防站手册
(图片来源网络,侵删)

重要声明:

  • 备份!备份!备份! 在进行任何修改之前,请务必备份您的网站程序文件和数据库,这是最重要的一步。
  • 版本问题 本手册主要针对 DedeCMS 5.7 SP2(最常用的5.7版本),如果您使用的是更早或更晚的版本,部分操作可能需要调整。
  • 安全是持续的过程 没有一劳永逸的安全方案,安全加固是一个持续的过程,需要您时刻关注最新的安全动态和补丁。

第一部分:服务器环境安全配置(最高优先级)

服务器环境是网站安全的第一道防线,也是最重要的一道防线,如果服务器不安全,程序做得再好也无济于事。

选择安全可靠的虚拟主机/服务器

  • 禁用危险函数:联系您的空间商,确保在 php.ini 中禁用或重命名以下危险函数:
    disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  • 安全模式:确保 safe_mode = Off (旧版本PHP建议开启,但PHP 5.4+已废弃,推荐关闭并配合 disable_functions 使用)。
  • 开启错误日志:确保 display_errors = Off,错误信息不应直接显示在页面上,而应写入日志文件 error_log

目录和文件权限设置

这是 DedeCMS 安全的核心!请严格按照以下权限设置:

  • 网站根目录755750
  • 程序目录():755
  • 数据目录/data/):707755 (这是关键!data 目录需要写入权限,但 707 风险较高,755 是更安全的折中方案,请确保运行网站的用户有写入权限)
  • 缓存目录/templets/cache/, /html/ 等):755
  • 所有 .php 文件644 (不可执行)
  • 所有 .html 文件644
  • 所有 .inc.php 文件644 (这些是包含文件,必须不可直接访问)
  • 所有配置文件/data/common.inc.php):644 (但需确保其可被 PHP 脚本读取)

如何设置权限?

  • Linux 服务器 (SSH):使用 chmod 命令,chmod 644 dede/*.php
  • 虚拟主机控制面板:通常有“文件权限”或“属性”设置功能。
  • FTP 客户端:右键文件/文件夹 -> 属性 -> 勾选相应的读写执行权限。

伪静态规则 (防注入)

.htaccess 文件中(如果不存在则创建一个,放在网站根目录),添加以下规则,可以有效防止一些常见的 SQL 注入和跨站脚本攻击。

dede5.7防站手册
(图片来源网络,侵删)
# 防止 SQL 注入
RewriteCond %{QUERY_STRING} (\.\.\/|\.\/|\.\.\\\|\.\\\|/etc/passwd|/etc/shadow|/etc/group|/etc/gshadow|/usr/(s|b)in|/bin|/sbin|var/(log|www|spool)|/proc/self|/dev/(null|urandom)|/proc/(meminfo|version|stat|cpuinfo|devices|filesystems|cmdline|environ|maps|modules|partitions|status|uptime|swaps|zoneinfo|cgroups))
RewriteRule .* - [F]
# 防止跨站脚本攻击
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (javascript:|vbscript:|expression:) [NC,OR]
RewriteCond %{QUERY_STRING} (alert|cmd|prompt|confirm|onmouseover|onload|onerror) [NC,OR]
RewriteCond %{QUERY_STRING} (document\.|cookie|window\.|\.parent) [NC]
RewriteRule .* - [F]
# 防止盗链
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9-]+\.)*yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|jpeg|png|gif|bmp|swf|rar|zip|css|js)$ - [F]
# 将 yourdomain.com 替换为您的域名

第二部分:DedeCMS 程序自身加固

安装最新补丁

DedeCMS 官方会不定期发布安全补丁,请务必访问 DedeCMS 官网,下载与您 5.7 版本对应的最新安全补丁进行覆盖更新。

  • 关注官方:持续关注 DedeCMS 官方论坛或安全公告。
  • 常见漏洞:5.7 的常见漏洞包括 plus/carbuyaction.phpplus/posttocar.phpmember/mtypes.php 等文件中的 SQL 注入漏洞,官方补丁会修复这些问题。

修改默认管理目录和入口

  • 修改管理目录名:将 /dede/ 目录重命名为一个复杂的、不易猜测的名字,如 myadmin_v2x8s
  • 修改管理入口文件:将 /dede/login.php 重命名为其他名字,如 login_new.php,然后修改 /dede/config.php 文件中的 $cfg_cmspath$cfg_adminpath 变量,使其指向新的入口文件名。
    // 在 /dede/config.php 中
    $cfg_cmspath = '/'; // 保持网站根目录
    $cfg_adminpath = '/myadmin_v2x8s'; // 你的新管理目录名
    // 还需要找到并修改登录跳转的URL

修改默认数据库表前缀

安装时如果使用了默认的 dede_,强烈建议修改,如果已经安装,可以手动修改:

  1. 备份数据库!
  2. 使用 phpMyAdmin 等工具,重命名所有以 dede_ 开头的表为新的前缀(如 mycms_)。
  3. 修改 /data/common.inc.php 文件中的 $cfg_dbprefix 变量。
    // 在 /data/common.inc.php 中
    $cfg_dbprefix = 'mycms_'; // 修改为你的新前缀

删除或锁定不必要的目录和文件

  • 删除示例数据:安装后,登录后台,在“系统” -> “数据库备份/恢复”中,删除默认的示例文章和栏目。
  • 删除危险文件:删除 /plus/diy.php(如果未使用自定义表单功能)或对其进行严格加固。
  • 锁定或重命名
    • /install/:安装目录,安装完成后务必删除。
    • /special/:专题目录,如果未使用,可以删除或设置 403 权限。
    • /member/:会员目录,如果不需要会员功能,可以删除或重命名。
    • /headimg.php:头像上传文件,如果未使用,建议删除。

后台安全设置

  1. 修改管理员密码:使用强密码(包含大小写字母、数字、特殊符号,长度至少12位)。
  2. 修改超级管理员用户名:不要使用 admin,修改为一个独特的名称。
  3. 关闭后台入口验证码:在“系统” -> “系统基本参数” -> “安全设置”中,不要关闭验证码,这是防止暴力破解的关键。
  4. 关闭会员目录的注册:如果不需要会员功能,在“系统” -> “系统基本参数” -> “会员设置”中,关闭“允许会员注册”。
  5. 开启SQL语句监控:在“系统” -> “系统基本参数” -> “其他选项”中,开启“开启SQL语句监控功能”,这有助于发现异常的数据库操作。

第三部分:数据库安全

  • 设置数据库密码:为数据库设置一个强密码,不要使用简单的密码。
  • 数据库用户权限:为 DedeCMS 的数据库用户分配最小权限,通常只需要 SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP (谨慎授予) 等权限,不要给予 FILE, GRANT 等危险权限。
  • 定期备份数据库:设置定时任务(Cron Job),每周或每天自动备份数据库,并将备份文件下载到本地或保存到云存储。

第四部分:日常运维与监控

定期更新

  • 关注官方:持续关注 DedeCMS 官方动态,一旦有新版本或安全补丁,立即更新。
  • 更新流程:更新前务必备份,然后按官方说明进行覆盖更新,最后检查网站是否正常。

定期扫描

  • 使用漏洞扫描工具(如“漏洞盒子”、“补天”或一些在线扫描服务)定期扫描您的网站,发现潜在风险。
  • 使用 DedeCMS 自带的“系统” -> “系统维护” -> “数据库备份/恢复”和“文件校验”功能进行检查。

关注网站日志

  • 定期查看服务器的访问日志(access_log)和错误日志(error_log),留意是否有异常的 IP 频繁访问特定文件(如 plus/search.php?id=...),这可能是在进行扫描或攻击。

防止被“挂马”

  • 文件监控:定期检查网站根目录下是否有非你上传的文件,特别是 .php.jsp 等可执行文件,以及被修改的 .html 文件。
  • 使用安全软件:在服务器上安装安全软件(如 Linux 下的 LMD (Linux Malware Detect)),可以定期扫描网站文件是否被感染。

DedeCMS 5.7 安全清单

类别 项目 状态 备注
服务器 禁用危险函数 必须 exec, shell_exec, system
目录权限设置 必须 data 目录 707755.php 文件 644
伪静态规则 必须 .htaccess 中配置,防注入和XSS
程序 安装最新补丁 必须 官方是唯一可信来源
修改管理目录/入口 必须 /dede/ -> 复杂名称
修改数据库前缀 强烈建议 安装时或安装后手动修改
删除无用文件 必须 /install/, /plus/diy.php
管理员账户安全 必须 强密码,非 admin 用户名
数据库 设置强密码 必须
定期备份 必须
运维 定期更新和扫描 必须 安全是持续过程
关注日志 建议 发现异常行为

遵循以上手册,您的 DedeCMS 5.7 网站的安全性将得到极大的提升,安全是一个系统性的工程,需要从环境、程序、运维等多个层面进行加固。

-- 展开阅读全文 --
头像
织梦cms 前后文章
« 上一篇 03-01
C语言如何用FindWindow函数查找窗口?
下一篇 » 03-01

相关文章

取消
微信二维码
支付宝二维码

目录[+]