曾经有许朋友的DEDE后台程序很容易被挂马,当然每个人都是通过一点一点积累经验,从被挂到能轻松防范,这需要一个逐渐积累的过程,任何事情都不是一蹴而就的,所以我们只要研究了方法就不会被挂马。 下面就来谈一谈具体的方法:
精简设置篇:
不需要的功能统统删除。比如不需要会员就将member文件夹删除。删除多余组件是避免被hack注射的最佳办法。将每个目录添加空的index.html,防止目录被访问。
织梦可删除目录列表:member会员功能 special专题功能 install安装程序(必删) company企业模块 plus\guestbook留言板 以及其他模块一般用不上的都可以不安装或删除。
密码设置篇:
管理员密码一定要长,而且字母与数字混合,尽量不要用admin,初次安装完成后将admin删除,新建个管理员名字不要太简单。织梦系统数据库存储的密码是MD5的,一般HACK就算通过注入拿到了MD5的密码,如果你的密码够严谨,对方也逆转不过来。也是无奈。但现在的MD5破解网站太过先进,4T的硬盘全是MD5密码,即便你的密码很复杂有时候都能被蒙上。我之前的站点就是这么被黑的。所以一定密码够复杂。
织梦可删除文件列表:
DEDE管理目录下的 file_manage_control.php file_manage_main.php file_manage_view.php media_add.php media_edit.php media_main.php 这些文件是后台文件管理器(这俩个功能最多余,也最影响安全,许多HACK都是通过它来挂马的。它简直就是小型挂马器,上传编辑木马忒方便了。一般用不上统统删除) 。
不需要SQL命令运行器的将dede/sys_sql_query.php 文件删除。避免HACK利用。
不需要tag功能请将根目录下的tag.php删除。不需要顶客请将根目录下的digg.php与diggindex.php删除。
修改配置篇:
为了防止HACK利用发布文档,上传木马。请安装完成后阻止上传PHP代码。到此基本堵上了所有上传与编辑木马的可能性。附带老大的简单方法。(在5.0以上的版本本身已经作好修改了,这点经测试比较过的)
打开
include/config_base.php
找到
Copy code//禁止用户提交某些特殊变量
$ckvs = Array('_GET','_POST','_COOKIE','_FILES');
foreach($ckvs as $ckv){
if(is_array($$ckv)){
foreach($$ckv AS $key => $value)
if(eregi("^(cfg_|globals)",$key)) unset(${$ckv}[$key]);
}
}
改为下面代码
Copy code//把get、post、cookie里的 $ckvs = Array('_GET','_POST','_COOKIE'); foreach($ckvs as $ckv){ if(is_array($$ckv)){ foreach($$ckv AS $key => $value) if(!empty($value)){ ${$ckv}[$key] = str_replace('<'.'?','&'.'lt;'.'?',$value); ${$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(); } } }
空间注意篇:
有些人使用的空间,请把空间的CP与FTP密码妥善保存。并且密码一定要复杂。如果自己的服务器就要靠自己了。
目录篇:
管理目录DEDE务必从命名,而且像密码一样复杂才最好。
补丁篇:
经常来织梦官方看看,有没有新的安全补丁。有的务必都打上。
做到以上的安全设置方面的修改,我们就不用DEDE被挂马了,当然没有万之策,但此方法可以杜绝大多数入侵情况的的发生