dedecms的漏洞主要集中在data、include、plus、dede、member几个文件夹中的php文件里,对于data这个文件夹我们可以把它移到网站的根目录外,dede可以冲命名,member可以删掉,一般用不着,special专题功能 install安装程序(必删) company企业模块 plus\guestbook留言板 以及其他模块一般用不上的都可以不安装或删除。这些个文件夹的修改网上比较多教程,大家搜索一下都会找得到的。include和plus文件的重命名方法网上比较少,所以本文主要说一下这两个文件夹的修改。
首先我们先安装好dedecms,然后把根目录下的所有文件夹和文件用ftp软件下载到本地,同时把数据库导出下载到本地,网站程序我们需要dw软件来进行批量替换,数据库文件我们需要editplus软件来替换(sql的文件用editplus比dw快)。
第一、plus文件夹的重命名修改
用editplus打开数据库文件,ctrl+h打开替换窗口,把数据库里的所有“plus”替换成你想要的名称,这里我们随便命个名,比如“aplu”。记得ctrl+s保存。
然后我们打开dw软件新建一个本地站点,如下图。我这里举例用的是“mydedecms”,把所有的网站文件都放到mydedecms下。然后随便打开站点下的一个文件,比如打开index.php。ctrl+f打开dw的替换窗口,查找范围我们选择整个当前本地站点,搜索选择源代码。查找就写plus,替换就写“aplu”,和刚才修改数据库文件的一致。点击全部替换直接把网站文件里所有的plus替换成aplu。
还有一步就是重命名所有带有plus的文件和文件夹,这个打开文件夹,搜索一下就出来,然后对这些带有plus的文件夹和文价重命名,把plus改成aplu。
这样plus的修改全部完成。
第二、include文件夹的重命名修改
和刚才修改plus差不多,不过不完全一样,数据库文件的修改是一样的,把数据库文件中所有的include替换成你想要的名字,比如ainclu。
网站程序文件include的修改和plus有点不一样,大家注意这点。我们是不能把所有文件里的include都替换成ainclu的,我的是把“include/”替换成“ainclu/”,然后再把“/include”替换成“/ainclu”,进行两次整站的替换,目前还没发现有什么错误,因为include是php的语言,有很多地方的“include”我们是不能换的。
分为两步
一、将include文件夹改为ainclu
二、将后台根路径(如果未改后台路径则是:网站根路径/dede)下的config.php 下的require_once(DEDEADMIN.'/../include/common.inc.php');改为require_once(DEDEADMIN.'/../ainclu/common.inc.php');
但是修改完以后,你会发现后台是白的,什么内容也没有,通过一下午的寻找终于找到原因,如下:
三、将改名后文件夹中ainclu/common.inc.php里面的define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0,-8) ) );
这句话中给DEDEROOT定义,却没有显示,或者不对。后来才发现是截取出了问题。将其改为define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0,-6) ) );即可。
三、在后台文件(原目录是dede)中却有许多地方需要修改将include改为ainclu
有用到include文件的有:
article_text_same.php
co_get_corule.php
config.php
exit.php
imagecut.php
login.phpmakehtml_story.php
media_main.php
module.php
module_make.php
mychannel_edit.php
sys_repair.phptestenv.php
tpl.php
sys_safetest.php
模板中:(后台目录:templets)
login.htm
完成上面的步骤后后台已经完成用正常使用,但是一看前台却发现,其前台不能用。原因就是还需要改一个文件
改网站根目录下的index.php中的 require_once (dirname(__FILE__) . "/include/common.inc.php");改为 require_once (dirname(__FILE__) . "/FHinc/common.inc.php");