最近,我發(fā)現(xiàn)帝國CMS(CMS)所構(gòu)建的網(wǎng)站首頁被惡意篡改,網(wǎng)站上被放置了亂七八糟的內(nèi)容,嚴重影響了網(wǎng)站的訪問。
我已經(jīng)按照《Web服務(wù)器目錄權(quán)限設(shè)置原則》設(shè)置了服務(wù)器,理論上不應(yīng)該再出現(xiàn)惡意篡改的問題。然而,經(jīng)過研究帝國CMS的后臺,我發(fā)現(xiàn)它具有生成靜態(tài)文件的功能。網(wǎng)站的首頁和欄目中的文章都是通過生成靜態(tài)文件來實現(xiàn)的。在生成靜態(tài)文件時,確實需要對網(wǎng)站目錄具有寫入權(quán)限,還需要訪問這些網(wǎng)站目錄的權(quán)限。這與《Web服務(wù)器目錄權(quán)限設(shè)置原則》相沖突。
我注意到這個問題后,考慮到了一個可能的解決方案。參考易客CRM在定義模塊時遇到的權(quán)限問題解決辦法,我們可以在需要寫入權(quán)限的時候通過命令行腳本更改網(wǎng)站目錄的權(quán)限。當生成靜態(tài)文件后,我們可以通過回收網(wǎng)站目錄的權(quán)限??紤]到當前的問題是首頁惡意篡改問題,我們只針對index.html進行處理,其他目錄暫不做處理。
為了實現(xiàn)這一目標,我找到了帝國CMS刷新首頁的處理代碼(e/class/chtmlfun.php中的ReIndex函數(shù))。在函數(shù)開頭和結(jié)尾分別添加了修改權(quán)限為555和777的Linux命令行代碼。這樣只在更新首頁時才擁有寫入權(quán)限,其他情況下只有讀取和執(zhí)行權(quán)限。通過PHP代碼調(diào)用Linux命令是通過shell_exec函數(shù)實現(xiàn)的。
這個方法在一定程度上解決了首頁被惡意篡改的問題,但還需要進一步的觀察和測試,以確保問題得到徹底解決。
我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!