PHP危險函數禁用深入詳解

error_log()

功能描述:將錯誤信息發送到指定位置(文件)。 
安全備註:在某些版本的 PHP 中,可使用 error_log() 繞過 PHP safe mode, 執行任意命令。 
危險等級:低

phpinfo()

功能描述:輸出 PHP 環境信息以及相關的模塊、WEB 環境等信息。 
危險等級:中

scandir() 

功能描述:列出指定路徑中的文件和目錄。 
禁用建議:不建議禁用,因為thinkphp框架需要調用。
危險等級:中

syslog() 

功能描述:可調用 UNIX 系統的系統層 syslog() 函數。 
危險等級:中

readlink() 

功能描述:返回符號連接指向的目標文件內容。 
危險等級:中

stream_socket_server() 

功能描述:建立一個 Internet 或 UNIX 服務器連接。 
禁用建議:不建議禁用,workerman框架需要使用。
危險等級:中

passthru()  

功能描述:允許執行一個外部程序並回顯輸出,類似於 exec()。 
危險等級:高 

exec() 

功能描述:允許執行一個外部程序(如 UNIX Shell 或 CMD 命令等)。 
危險等級:高

system() 

功能描述:允許執行一個外部程序並回顯輸出,類似於 passthru()。 
危險等級:高

chroot() 

功能描述:可改變當前 PHP 進程的工作根目錄,僅當系統支持 CLI 模式 PHP 時才能工作,且該函數不適用於 Windows 系統。 
危險等級:高

chgrp() 

功能描述:改變文件或目錄所屬的用戶組。 
危險等級:高

chown() 

功能描述:改變文件或目錄的所有者。 
危險等級:高

shell_exec() 

功能描述:通過 Shell 執行命令,並將執行結果作為字符串返回。 
危險等級:高

proc_open() 

功能描述:執行一個命令並打開文件指針用於讀取以及寫入。 
危險等級:高

proc_get_status() 

功能描述:獲取使用 proc_open() 所打開進程的信息。 
危險等級:高

ini_set() 

功能描述:可用於修改、設置 PHP 環境配置參數。

禁用建議:不建議禁用,因為很多程序需要使用 ,比如:

<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");//設置 PHP的報錯級別並返回當前級別。
?>

危險等級:高

ini_alter() 

功能描述:是 ini_set() 函數的一個別名函數,功能與 ini_set() 相同。
危險等級:高

ini_restore() 

功能描述:可用於恢復 PHP 環境配置參數到其初始值。 
危險等級:高

dl() 

功能描述:在 PHP 進行運行過程當中(而非啟動時)加載一個 PHP 外部模塊。 
危險等級:高

pfsockopen() 

功能描述:建立一個 Internet 或 UNIX 域的 socket 持久連接。 
危險等級:高

symlink() 

功能描述:在 UNIX 系統中建立一個符號鏈接。 
危險等級:高

popen() 

功能描述:可通過 popen() 的參數傳遞一條命令,並對 popen() 所打開的文件進行執行。 
危險等級:高

putenv() 

功能描述:用於在 PHP 運行時改變系統字符集環境。在低於 5.2.6 版本的 PHP 中,可利用該函數 修改系統字符集環境後,利用 sendmail 指令發送特殊參數執行系統 SHELL 命令。 
危險等級:高

fsockopen()

功能描述:一個可以實現遠程登錄訪問的函數,也容易被黑客利用進行PHPDDOS攻擊。phpddos原理是向外發upd包,curl當然也可以,但默認情況下fsockopen可用,curl不默認加載。
危險等級:高

禁用方法:

打開php.ini文件, 查找到disable_functions,在等於號(=)後面添加需禁用的函數名,如下:

syslog,readlink,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,symlink,popen,putenv,fsocket,fsockopen

disable_functions =syslog,readlink,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,symlink,popen,putenv,fsocket,fsockopen

到此這篇關於PHP危險函數禁用深入詳解的文章就介紹到這瞭,更多相關PHP危險函數禁用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: