如何防止PHP木馬攻擊

2021-06-18 16:05:02 字數 2137 閱讀 8310

如題,現在好多木馬用php編寫的,木馬通過修改web目錄下的檔案來攻擊系統;通過php執行shell來攻擊伺服器等等,作為系統架構者對系統或伺服器如何架構來防止類似的情況發生呢?

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以外的檔案將不會被允許.

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

以下方法也是經過眾多程式設計師總結出來的10條經驗,雖然有時候無法完全遵守,但是開發的時候還是應該盡量注重安全,能避開安全問題就盡量避開。

(1) 開啟php的安全模式

php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函式,同時把很多檔案操作函式進行了許可權控制,也不允許對某些關鍵檔案的檔案

但是預設的php.ini是沒有開啟安全模式的

(2) 使用者組安全

當safe_mode開啟時,safe_mode_gid被關閉,那麼php指令碼能夠對檔案進行訪問,而且相同組的使用者也能夠對檔案進行訪問。如果不進行設定,可能我們無法對我們伺服器**目錄下的檔案進行操作了,比如我們需要對檔案進行操作的時候。

(3) 安全模式下執行程式主目錄

如果安全模式開啟了,但是卻是要執行某些程式的時候,可以指定要執行程式的主目錄

一般情況下是不需要執行什麼程式的,所以推薦不要執行系統程式目錄,可以指向乙個目錄,然後把需要執行的程式拷貝過去,但是,我更推薦不要執行任何程式,那麼就可以指向我們網頁目錄

(4) 安全模式下包含檔案

如果要在安全模式下包含某些公共檔案,

其實一般php指令碼中包含檔案都是在程式自己已經寫好了,這個可以根據具體需要設定。

(5) 控制php指令碼能訪問的目錄

使用open_basedir選項能夠控制php指令碼只能訪問指定的目錄,這樣能夠避免php指令碼訪問

不應該訪問的檔案,一定程度上限制了phpshell的危害,我們一般可以設定為只能訪問**目錄

(6) 關閉危險函式

如果開啟了安全模式,那麼函式禁止是可以不需要的,但是我們為了安全還是考慮進去。比如,我們覺得不希望執行包括system等在那的能夠執行命令的php函式,或者能夠檢視php資訊的,如果你要禁止任何檔案和目錄的操作,那麼可以關閉很多檔案操作,以上只是列了部分不叫常用的檔案處理函式,你也可以把上面執行命令函式和這個函式結合,就能夠抵制大部分的phpshell了。

(7) 關閉php版本資訊在http頭中的洩漏

我們為了防止黑客獲取伺服器中php版本的資訊,可以關閉該資訊斜路在http頭中

(8) 關閉註冊全域性變數

在php中提交的變數,包括使用post或者get提交的變數,都將自動註冊為全域性變數,能夠直接訪問,這是對伺服器非常不安全的,所以我們不能讓它註冊為全域性變數,就把註冊全域性變數選項關閉,當然,如果這樣設定了,那麼獲取對應變數的時候就要採用合理方式

(9) sql注入

sql注入是非常危險的問題,小則**後台被入侵,重則整個伺服器淪陷,所以一定要小心。這個預設是關閉的,如果它開啟後將自動把使用者提交對sql的查詢進行轉換,

(10) 錯誤資訊控制

一般php在沒有連線到資料庫或者其他情況下會有提示錯誤,一般錯誤資訊中會包含php指令碼當前的路徑資訊或者查詢的sql語句等資訊,這類資訊提供給黑客後,是不安全的

PHP防止木馬攻擊的措施

只允許你的php指令碼在web目錄裡操作,針對apache,還可以修改httpd.conf檔案限制php操作路徑。例如 php admin value open basedir 將使用者可操作的檔案限制在某目錄下 web目錄。在linux系統中web根目錄有個.user.ini檔案,修改該檔案與修改...

抵禦php木馬的攻擊

1.防止跳出web目錄 修改httpd.conf,如果你只允許你的php指令碼程式在web目錄裡操作,還可以修改httpd.conf檔案限制php的操作路徑。比 如你的web目錄是 usr local apache htdocs,那麼在httpd.conf裡加上這麼幾行 php admin valu...

php木馬攻擊防禦之道

1 防止跳出web目錄 首先修改httpd.conf,假如您只允許您的php指令碼程式在web目錄裡操作,還能夠修改httpd.conf文件限制php的操作路徑。比如您的web目錄是 usr local apache htdocs,那麼在httpd.conf裡加上這麼幾行 php admin val...