IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁網(wǎng)絡(luò)編程PHP編程 → PHP安全講DedeCms的安全加固

PHP安全講DedeCms的安全加固

時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  DedeCms做為國內(nèi)使用最為廣泛使用人數(shù)最多的CMS之一,經(jīng)常爆出漏洞,每個(gè)漏洞的爆出,影響都是一大片,輕則被人掛廣告、彈框,重則服務(wù)器成為肉機(jī),寶貴數(shù)據(jù)丟失。那么有什么辦法可以提高DedeCms的安全性呢?

  先來看看原因吧,為什么php程序經(jīng)常出漏洞,其實(shí)是由PHP程序本身決定的。PHP可復(fù)用性低,導(dǎo)致程序結(jié)構(gòu)錯(cuò)綜復(fù)雜,到處是冗余代碼,這樣不僅利于漏洞的產(chǎn)生,還影響漏洞的修得;PHP程序入門簡單且普遍開源,導(dǎo)致很多人都可直接閱讀代碼,搜尋漏洞;這樣便有源源不斷的漏洞被發(fā)現(xiàn)、被修復(fù)、被發(fā)現(xiàn)……。而當(dāng)前流行的PHP系統(tǒng)習(xí)慣用以文件形式做為緩存,這樣就需要開放文件的寫權(quán)限,這無疑成為PHP系統(tǒng)的軟肋。目前針對PHP系統(tǒng)的攻擊方式,除了已經(jīng)很少出現(xiàn)的"注入"攻擊外,大部分攻擊都是通過系統(tǒng)的某個(gè)漏洞,向可寫文件里插入一句話木馬,以此方式獲得shell。

  網(wǎng)站安全從來都是服務(wù)器配置、文件權(quán)限控制和網(wǎng)站程序三者的相互配合,今天主要看看如果對DedeCms網(wǎng)站程序的改進(jìn)來提高安全性。"可執(zhí)行的文件不允許被修改,可寫文件不允許被訪問"這是網(wǎng)站權(quán)限控制的根本原則,網(wǎng)站程序在"可寫文件不允許被訪問"方面可做許多工作。就拿DedeCMS來說,我們可以在如下幾個(gè)方式做好保護(hù)。

  1、改名根目錄下的data目錄,或者移動到網(wǎng)站目錄外面

  data 目錄便是最藏污納垢的地方,系統(tǒng)經(jīng)常要往這個(gè)目錄寫數(shù)據(jù),這個(gè)目錄下的任何一個(gè)文件又都可以通過URL訪問到,所以要讓瀏覽器訪問不到里面的文件,就需要將此目錄改名,或者移動到網(wǎng)站的目錄外面去。這些,即使別人通過漏洞往文件里寫進(jìn)了一句話木馬,他也找不到此木馬所在的文件路徑,無法繼續(xù)展開攻擊。因?yàn)?DedeCMS程序的不合理,導(dǎo)致改名data目錄動作會比較大,具體做法如下:

  a. 將公開的內(nèi)容遷移到pub目錄(或者其它自定義目錄)下,如rss、sitemap、js、enum等,此步驟需要移動文件夾,并修改這些文件的生成路徑

  b. 修改引用程序目錄

  搜索替換"DEDEDATA."/data/" 為 "DEDEDATA."/",大概替換五六十個(gè)地方;

  搜索替換"DEDEDATA.‘/data/" 為 "DEDEDATA.’/",大概替換五六十個(gè)地方;

  搜索"/data/",按具體情況,修改路徑類似成為:"$DEDEDATA."/"(注意include目錄和后臺管理目錄都有data文件夾,不需要修改);

  c. 修改data文件夾名稱,并修改include/common.inc.php文件里的"DEDEDATA"的值,再在后臺系統(tǒng)設(shè)置>參數(shù)設(shè)置里修改模板緩存目錄,即可修改完成。以后也可以按照此步驟來更改data文件夾名稱。

  2、改名"dede"管理目錄,并加固

  如果把后臺隱藏好了,即使別人獲得了你的管理員賬號、密碼,他也無從登錄。

  a.在/dede/config.php里,找到如下行:

1//檢驗(yàn)用戶登錄狀態(tài)
2$cuserLogin = new userLogin();
3if($cuserLogin->getUserID()==-1)
4{
5    header("location:login.php?gotopage=".urlencode($dedeNowurl));
6}

  把上面代碼,改為:

1//檢驗(yàn)用戶登錄狀態(tài)
2$cuserLogin = new userLogin();
3if($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的文件名稱,并對應(yīng)的修改/dede/templets/login.htm里的表單提交地址;

  c.修改/dede/的目錄名稱;

  這樣,別人在沒有登錄前,只能訪問/dede/login.php改名后的地址,訪問其他地址均會獲得404錯(cuò)誤。

  當(dāng)然,做了安全加固后,以后DedeCMS的升級就會有一些麻煩

關(guān)鍵詞標(biāo)簽:PHP,DedeCms

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 plsql developer怎么連接數(shù)據(jù)庫-plsql deveplsql developer怎么連接數(shù)據(jù)庫-plsql deve2021年最好用的10款php開發(fā)工具推薦2021年最好用的10款php開發(fā)工具推薦在 PHP 中使用命令行工具在 PHP 中使用命令行工具php應(yīng)用程序安全防范技術(shù)研究php應(yīng)用程序安全防范技術(shù)研究

相關(guān)下載

人氣排行 詳解ucenter原理及第三方應(yīng)用程序整合思路、方法PHP中防止SQL注入攻擊PHP會話Session的具體使用方法解析PHP運(yùn)行出現(xiàn)Notice : Use of undefined constant 的解決辦法CakePHP程序員必須知道的21條技巧PHP如何清空mySQL數(shù)據(jù)庫PHP采集圖片實(shí)例(PHP采集)plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法