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 //检讨用户登录状态2 $cuserLogin = new userLogin();
3 if($cuserLogin->getUserID()==-1)
4 {
5 header("location:login.php?gotopage=".urlencode($dedeNowurl));
6 }
把上面代码,改为:
以下为引用的内容:
1 //检讨用户登录状态2 $cuserLogin = new userLogin();
3 if($cuserLogin->getUserID()==-1)
4 {
5 //header("location:login.php?gotopage=".urlencode($dedeNowurl));
6 header("HTTP/1.0 404 Not Found");
7 exit();
8 }
b.修改/dede/login.php的文件名称,并对应的修改/dede/templets/login.htm里的表单提交地点;
c.修改/dede/的目次名称;
这样,别人在没有登录前,只能会见/dede/login.php更名后的地点,会见其他地点均会得到404错误。
虽然,做了安详加固后,今后DedeCMS的进级就会有一些贫苦。