防PHP木馬以內部函數的做用.php
實施環境:支持並運行PHP的各種操做系統
實施方法:經過對PHP的核心配置文件PHP.ini的修改,禁用一些功能強大的內部函數!好了,咱們開始行動吧!linux
第一步:打開php.ini文件(windows默認路徑爲」%systemroot%php.ini」,linux默認路徑在」etc/php.ini」).web
第二步:找到」safe_mode=off」改成」safe_mode=on」(已經打開的省略此步)shell
第三步:找到」disable_functions=」改成:」disable_functions=phpinfo,system,exec,passthru,shell_exec,popen,is_dir」.數據庫
第四步:找到」display_errors=on」改成」display_errors=off」編程
第五步:保存退出.windows
說明:php安全模式(safe_mode)打開後,」disable_functions=」後跟的所有都是被禁用的PHP內部函數.」phpinfo」這個函數並非爲防止PHP木馬而禁用的.但它能返回全部的PHP基本信息,建議關閉以絕後患,」system,exec,passthru,shell_exec,popen,」 這些屬於命令執行類函數,關閉他們能夠防止PHP木馬執行webshell;」is_dir」這個函數的關閉,可讓既使有everyone可讀的權限, 也沒法將服務器目錄及文件名返回到瀏覽器.但此時PHP的錯誤提示會告訴你是由於哪些函數出錯造的.因此咱們還要關掉錯誤提示,就是咱們的第四步,這樣下來
那些通常的工具黑客就會覺得沒有權限而放棄!瀏覽器
我的意見:我發現網絡廣爲轉貼的一篇防PHP木馬文章裏把關閉的特定函數設
爲」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」,首先我對delfile也被列爲被禁用的PHP函數打了一個超大的問號.再一個,PHP自己就是以提供了大量的函數,實現某功能比較容易而受到了不少PHP編程者歡迎.若是禁掉這麼多函數,以文本數據庫運行的留言本,論壇等等都沒法正常使用運行.
木馬是禁止了,PHP的能力也損失了,怕是不少客戶也只能離這個虛擬主機而去了.安全
因此我其實連is_dir都不捨得關掉.我更喜歡只關才phpinfo,system,exec,passthru,shell-exec,popen,而後配以正確的權限設置比較有效.服務器