從PHP安全講DedeCms的安全強化

來源:互聯網
上載者:User
DedeCms做為國內使用最為廣泛使用人數最多的CMS之一,經常爆出漏洞,每個漏洞的爆出,影響都是一大片,輕則被人掛廣告、彈框,重則伺服器成為肉機,寶貴資料丟失。那麼有什麼辦法可以提高DedeCms的安全性呢?

先來看看原因吧,為什麼PHP程式經常出漏洞,其實是由PHP程式本身決定的。PHP可複用性低,導致程式結構錯綜複雜,到處是冗餘代碼,這樣不僅利於漏洞的產生,還影響漏洞的修得;PHP程式入門簡單且普遍開源,導致很多人都可直接閱讀代碼,搜尋漏洞;這樣便有源源不斷的漏洞被發現、被修複、被發現……。而當前流行的PHP系統習慣用以檔案形式做為緩衝,這樣就需要開放檔案的寫入權限,這無疑成為PHP系統的軟肋。目前針對PHP系統的攻擊方式,除了已經很少出現的“注入”攻擊外,大部分攻擊都是通過系統的某個漏洞,向可寫檔案裡插入一句話木馬,以此方式獲得shell。

網站安全從來都是伺服器配置、檔案許可權控制和網站程式三者的相互配合,今天主要看看如果對DedeCms網站程式的改進來提高安全性。“可執行檔檔案不允許被修改,可寫檔案不允許被訪問”這是網站許可權控制的根本原則,網站程式在“可寫檔案不允許被訪問”方面可做許多工作。就拿DedeCMS來說,我們可以在如下幾個方式做好保護。(以下說明在DEDE V55_UTF8版本實現正常,其他版本未作測試)
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();
3if($cuserLogin->getUserID()==-1)
4{
5    header("location:login.php?gotopage=".urlencode($dedeNowurl));
6}

把上面代碼,改為:1//檢驗使用者登入狀態
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的檔案名稱,並對應的修改/dede/templets/login.htm裡的表單提交地址;
c.修改/dede/的目錄名稱;

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

當然,做了安全強化後,以後DedeCMS的升級就會有一些麻煩

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.