DedeCms做为国内运用最为广泛运用人数最多的CMS之一,常常爆出缝隙,每个缝隙的爆出,影响都是一大片,轻则被人挂广告、弹框,重则服务器成为肉机,名贵数据丢掉。那么有什么方法能够进步DedeCms的安全性呢?
先来看看原因吧,为什么PHP程序常常出缝隙,其实是由PHP程序自身决议的。PHP可复用性低,导致程序结构错综复杂,到处是冗余代码,这样不只利于缝隙的发生,还影响缝隙的修得;PHP程序入门简单且遍及开源,导致很多人都可直接阅读代码,查找缝隙;这样便有连绵不断的缝隙被发现、被修正、被发现……。而当时盛行的PHP体系习惯用以文件方法做为缓存,这样就需求开放文件的写权限,这无疑成为PHP体系的软肋。现在针对PHP体系的进犯方法,除了现已很少出现的“注入”进犯外,大部分进犯都是经过体系的某个缝隙,向可写文件里刺进一句话木马,以此方法取得shell。
网站安全历来都是服务器装备、文件权限操控和网站程序三者的相互配合,今日主要看看如果对DedeCms网站程序的改进来进步安全性。“可执行的文件不允许被修正,可写文件不允许被拜访”这是网站权限操控的根本准则,网站程序在“可写文件不允许被拜访”方面可做许多工作。就拿DedeCMS来说,咱们能够在如下几个方法做好维护。
1、改名根目录下的data目录,或许移动到网站目录外面
data目录便是最藏污纳垢的当地,体系常常要往这个目录写数据,这个目录下的任何一个文件又都能够经过URL拜访到,所以要让浏览器拜访不到里边的文件,就需求将此目录改名,或许移动到网站的目录外面去。这些,即便他人经过缝隙往文件里写进了一句话木马,他也找不到此木马所在的文件途径,无法持续打开进犯。因为DedeCMS程序的不合理,导致改名data目录动作会比较大,具体做法如下:
a. 将揭露的内容迁移到pub目录(或许其它自定义目录)下,如rss、sitemap、js、enum等,此过程需求移动文件夹,并修正这些文件的生成途径
b. 修正引用程序目录
查找替换“DEDEDATA.“/data/” 为 “DEDEDATA.”/”,大约替换五六十个当地;
查找替换“DEDEDATA.‘/data/” 为 “DEDEDATA.’/”,大约替换五六十个当地;
查找“/data/”,按具体情况,修正途径相似成为:“$DEDEDATA.“/”(留意include目录和后台办理目录都有data文件夹,不需求修正);
c. 修正data文件夹称号,并修正include/common.inc.php文件里的“DEDEDATA”的值,再在后台体系设置》参数设置里修正模板缓存目录,即可修正完结。今后也能够按照此过程来更改data文件夹称号。
2、改名“dede”办理目录,并加固
如果把后台躲藏好了,即便他人取得了你的办理员账号、暗码,他也无从登录。
a.在/dede/config.php里,找到如下行:
仿制代码
1//查验用户登录状况 $cuserLogin = new userLogin(); if($cuserLogin->getUserID()==-1) 4{ header("location:login.php?gotopage=".urlencode($dedeNowurl)); }
把上面代码,改为:
仿制代码
//查验用户登录状况 $cuserLogin = new userLogin(); if($cuserLogin->getUserID()==-1) { //header("location:login.php?gotopage=".urlencode($dedeNowurl)); header("HTTP/1.0 404 Not Found"); exit(); }
b.修正/dede/login.php的文件称号,并对应的修正/dede/templets/login.htm里的表单提交地址;
c.修正/dede/的目录称号;
这样,他人在没有登录前,只能拜访/dede/login.php改名后的地址,拜访其他地址均会取得404过错。
当然,做了安全加固后,今后DedeCMS的晋级就会有一些费事。