網站安全都是服務器配置、文件權限控制和網站程序三者的相互配合,如果要對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里,找到如下行:
//檢驗用戶登錄狀態 $cuserLogin = new userLogin(); if($cuserLogin->getUserID()==-1) { 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的升級就會有一些麻煩。
Copyright © 2009-2019 Ywcms.Com All Right Reserved. 湘ICP備16006489號-2