關于PW后臺安全還有很多,比如 隱藏Data 增強網站安全性,data目錄隱藏功能設置詳解,大家可以看看。
比如安全問題設置,登錄后臺的用戶必須有安全問題驗證,比如前后臺帳號分開,即使前臺是管理員,可能后臺都進不去。比如后臺管理地址可以任意更改,默認是admin.php,如果你直接改為: '我不知道.php',猜想你的后臺地址也要耗精力,而你修改僅僅是鍵盤輸入加一個回車就搞定。。。。。
不過今天不說后臺安全,更多的等待大家挖掘,說說文件讀寫刪,文件讀、寫、刪除、判斷文件存在的安全 (readover、writeover、unlink、file_exists),可以看下這兩個函數的講解:{0828}PW讀寫函數之writeover{0208} {0829}PW讀寫函數之readover{0209}
function writeover($filename,$data,$method='rb+',$iflock=1,$check=1,$chmod=1){
//Copyright (c) 2003-09 PHPWind
$check && strpos($filename,'..')!==false && exit('Forbidden');
touch($filename);
$handle = fopen($filename,$method);
$iflock && flock($handle,LOCK_EX);
fwrite($handle,$data);
$method=='rb+' && ftruncate($handle,strlen($data));
fclose($handle);
$chmod && @chmod($filename,0777);
}
PW在用這些函數的時全部禁止../ 的提交,當你執行如下片段的時候
$read=readover('../../licence.txt','rb');
writeover('../../aaa.txt',$read);
只會給你一個大 Forbidden,這樣在某種程度來說可以保證了構造注入的安全。
并且這里也建議插件開發的朋友,在開發插件的時候即使你不用writeover,也別用到../ 目錄層方式來提交數據。在一些郵件程序里經常會在這個BUG,要是把file這個變量換成./../甚至更上層呢?目錄就這樣被遍歷了。
說的遍歷目錄,還想到一個反斜桿的問,對于/和/的過濾這個問題程序員應該很常見,很容易忽略很容易出問題,不怕過濾時漏掉什么,而是怕你想不起要去過濾。
在國外流行一句話叫:All puts is invalid。也許真的就是這樣,所有輸入都是有害的。
當然!~,程序安全還要以服務器安全為前提,如果FTP或者root權限都被人知道了,談程序安全就沒有什么意義了。
時間關系,今天的拋磚引玉就寫到這里,有空將繼續和大家分享:include(),require()和 fopen(),include_once(),require_once(),這些都可以遠程調用文件,對于它們的危害,google搜一下你就會很明 了。
注:一些相關PHP安全大家可以查看谷歌,本文的部分資料參考網絡。
新聞熱點
疑難解答