先來(lái)看看原因吧,為什么PHP程序經(jīng)常出漏洞,其實(shí)是由PHP程序本身決定的。PHP可復(fù)用性低,導(dǎo)致程序結(jié)構(gòu)錯(cuò)綜復(fù)雜,到處是冗余代碼,這樣不僅利于漏洞的產(chǎn)生,還影響漏洞的修得;PHP程序入門(mén)簡(jiǎn)單且普遍開(kāi)源,導(dǎo)致很多人都可直接閱讀代碼,搜尋漏洞;這樣便有源源不斷的漏洞被發(fā)現(xiàn)、被修復(fù)、被發(fā)現(xiàn)……。而當(dāng)前流行的PHP系統(tǒng)習(xí)慣用以文件形式做為緩存,這樣就需要開(kāi)放文件的寫(xiě)權(quán)限,這無(wú)疑成為PHP系統(tǒng)的軟肋。目前針對(duì)PHP系統(tǒng)的攻擊方式,除了已經(jīng)很少出現(xiàn)的“注入”攻擊外,大部分攻擊都是通過(guò)系統(tǒng)的某個(gè)漏洞,向可寫(xiě)文件里插入一句話(huà)木馬,以此方式獲得shell。
網(wǎng)站安全從來(lái)都是服務(wù)器配置、文件權(quán)限控制和網(wǎng)站程序三者的相互配合,今天主要看看如果對(duì)DedeCms網(wǎng)站程序的改進(jìn)來(lái)提高安全性。“可執(zhí)行的文件不允許被修改,可寫(xiě)文件不允許被訪問(wèn)”這是網(wǎng)站權(quán)限控制的根本原則,網(wǎng)站程序在“可寫(xiě)文件不允許被訪問(wèn)”方面可做許多工作。就拿DedeCMS來(lái)說(shuō),我們可以在如下幾個(gè)方式做好保護(hù)。
1、改名根目錄下的data目錄,或者移動(dòng)到網(wǎng)站目錄外面
data目錄便是最藏污納垢的地方,系統(tǒng)經(jīng)常要往這個(gè)目錄寫(xiě)數(shù)據(jù),這個(gè)目錄下的任何一個(gè)文件又都可以通過(guò)URL訪問(wèn)到,所以要讓瀏覽器訪問(wèn)不到里面的文件,就需要將此目錄改名,或者移動(dòng)到網(wǎng)站的目錄外面去。這些,即使別人通過(guò)漏洞往文件里寫(xiě)進(jìn)了一句話(huà)木馬,他也找不到此木馬所在的文件路徑,無(wú)法繼續(xù)展開(kāi)攻擊。因?yàn)镈edeCMS程序的不合理,導(dǎo)致改名data目錄動(dòng)作會(huì)比較大,具體做法如下:
a. 將公開(kāi)的內(nèi)容遷移到pub目錄(或者其它自定義目錄)下,如rss、sitemap、js、enum等,此步驟需要移動(dòng)文件夾,并修改這些文件的生成路徑
b. 修改引用程序目錄
搜索替換“DEDEDATA.“/data/” 為 “DEDEDATA.”/”,大概替換五六十個(gè)地方;
搜索替換“DEDEDATA.‘/data/” 為 “DEDEDATA.’/”,大概替換五六十個(gè)地方;
搜索“/data/”,按具體情況,修改路徑類(lèi)似成為:“$DEDEDATA.“/”(注意include目錄和后臺(tái)管理目錄都有data文件夾,不需要修改);
c. 修改data文件夾名稱(chēng),并修改include/common.inc.php文件里的“DEDEDATA”的值,再在后臺(tái)系統(tǒng)設(shè)置》參數(shù)設(shè)置里修改模板緩存目錄,即可修改完成。以后也可以按照此步驟來(lái)更改data文件夾名稱(chēng)。
2、改名“dede”管理目錄,并加固
如果把后臺(tái)隱藏好了,即使別人獲得了你的管理員賬號(hào)、密碼,他也無(wú)從登錄。
a.在/dede/config.php里,找到如下行:
以下為引用的內(nèi)容: 1 //檢驗(yàn)用戶(hù)登錄狀態(tài)2 $cuserLogin = new userLogin(); 3 if($cuserLogin->getUserID()==-1) 4 { 5 header("location:login.php?gotopage=".urlencode($dedeNowurl)); 6 }
|
把上面代碼,改為:
以下為引用的內(nèi)容: 1 //檢驗(yàn)用戶(hù)登錄狀態(tài)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的文件名稱(chēng),并對(duì)應(yīng)的修改/dede/templets/login.htm里的表單提交地址;
c.修改/dede/的目錄名稱(chēng);
這樣,別人在沒(méi)有登錄前,只能訪問(wèn)/dede/login.php改名后的地址,訪問(wèn)其他地址均會(huì)獲得404錯(cuò)誤。
當(dāng)然,做了安全加固后,以后DedeCMS的升級(jí)就會(huì)有一些麻煩。
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: DedeCms的安全加固DATA目錄轉(zhuǎn)移