提高DedeCMS网站安全性:实用技巧与设置方法

有些朋友的DedeCMS后台程序被挂马,导致了一定的损失,于是认为DedeCMS的安全性较低。实际上,能被黑客盯上的网站通常都具备一定的价值,而那些垃圾站点可能连黑客都不屑一顾。只要积累经验并采取适当的措施,就能有效提升网站的安全性。下面将具体介绍一些设置方法。

  复杂化后台密码

  管理员密码一定要足够长,并且采用字母与数字混合的方式,避免使用过于简单的密码如“admin”。系统数据库存储的密码是经过MD5加密的,即使黑客通过注入手段获取了MD5密码,如果您的密码足够复杂,他们也很难逆向破解。

  删除不必要的目录

  不需要的功能可以一律删除,例如不需要会员功能时可将member文件夹删除。删除多余的组件是防止被黑客利用的最佳办法。

  可删除目录列表:

  member会员功能
  special专题功能
  install安装程序(必删)
  company企业模块
  /plus/guestbook留言板

以及其他模块一般用不上的都可以不安装或删除。

  删除不需要的文件

  /dede/file_manage_control.php
  /dede/file_manage_main.php
  /dede/file_manage_view.php
  /dede/media_add.php
  /dede/media_edit.php
  /dede/media_main.php

这些文件是后台文件管理器,一般用不上统统删除,要管理文件夹尽量到FTP。

不需要SQL命令运行器的将下面文件删除。
  /dede/sys_sql_query.php

不需要tag功能请删除:
  /tag.php

不需要顶客请删除:
  /plus/digg.php
  /plus/diggindex.php

修改配置

为了防止黑客利用发布文档、上传木马,请在安装完成后阻止上传PHP代码。到此基本堵上了所有上传与编辑木马的可能性,附带简单方法。


// 禁止用户提交某些特殊变量
$ckvs = Array('_GET','_POST','_COOKIE','_FILES');
foreach($ckvs as $ckv){
if(is_array($$ckv)){
foreach($$ckv AS $key => $value)
if(!empty($value)){
$$ckv[$key] = str_replace('<','?','lt?',${$ckv}[$key]);
$$ckv[$key] = str_replace('?>','?','gt',${$ckv}[$key]);
}
if(eregi("^cfg_|globals",$key)) unset(${$ckv}[$key]);
}
}
// 检测上传的文件中是否有PHP代码,有直接退出处理
if(is_array($_FILES)) {
foreach($_FILES AS $name => $value){
${$name} = $value['tmp_name'];
$fp = @fopen(${$name},'r');
$fstr = @fread($fp,filesize(${$name}));
@fclose($fp);
if($fstr!=''&& ereg("<\\\\?",$fstr)){
echo "你上传的文件中含有危险内容,程序终止处理!";
exit();
}
}
}

  目录重命名 虚拟主机注意事项

管理目录/dede务必重命名,而且要像密码一样复杂才最好。

补丁升级

DedeCMS更新频率不高,但是如果有更新一定用最新的,如果已经做了二次开发的,先备份数据库,再仔细对比手动覆盖安装。