1、防止跳出web目錄
首先修改httpd.conf,假如您只允許您的php指令碼程式在web目錄裡操作,還能夠修改httpd.conf文檔限制php的操作路徑。比如您的web目錄是/usr/local/apache/htdocs,那麼在httpd.conf裡加上這麼幾行:
php_admin_value open_basedir /usr/local/apache
/htdocs
這樣,假如指令碼要讀取/usr/local/apache/htdocs以外的文檔將不會被允許,假如錯誤顯示開啟的話會提示這樣的錯誤:
Warning: open_basedir restriction in effect. File is in wrong directory in
/usr/local/apache/htdocs/open.php on line 4
等等。
2、防止php木馬執行webshell
開啟safe_mode,
在,php.ini中配置
disable_functions= passthru,exec,shell_exec,system
二者選一即可,也可都選
3、防止php木馬讀寫文檔目錄
在php.ini中的
disable_functions= passthru,exec,shell_exec,system
後面加上php處理文檔的函數
主要有
fopen,mkdir,rmdir,chmod,unlink,dir
fopen,fread,fclose,fwrite,file_exists
closedir,is_dir,readdir.opendir
fileperms.copy,unlink,delfile
即成為
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
,fopen,fread,fclose,fwrite,file_exists
,closedir,is_dir,readdir.opendir
,fileperms.copy,unlink,delfile
ok,大功告成,php木馬拿我們沒轍了,遺憾的是這樣的話,利用文本資料庫的那些東西就都不能用了。
假如是在windos平台下搭建的apache我們還需要注意一點,apache預設運行是system許可權,這很恐怖,這讓人感覺很不爽.那我們就給apache降降許可權吧。
net user apache fuckmicrosoft /add
net localgroup users apache /del
ok.我們建立了一個不屬於任何組的使用者apche。
我們開啟電腦管理器,選服務,點apache服務的屬性,我們選擇log on,選擇this account,我們填入上面所建立的賬戶和密碼,重啟apache服務,ok,apache運行在低許可權下了。
實際上我們還能夠通過配置各個文檔夾的許可權,來讓apache使用者只能執行我們想讓他能乾的事情,給每一個目錄建立一個單獨能讀寫的使用者。這也是當前很多虛擬機器主機供應商的流行配置方法哦,但是這種方法用於防止這裡就顯的有點大材小用了。