- 相關推薦
21種PHP 危險函數全解析
在編譯 PHP 時,如無特殊需要,一定禁止編譯生成 CLI 命令行模式的 PHP 解析支持?稍诰幾g時使用 –disable-CLI。一旦編譯生成 CLI 模式的PHP,則可能會被入侵者利用該程序建立一個WEB Shell 后門進程或通過PHP 執行任意代碼。
1.phpinfo()
功能描述:輸出 PHP 環境信息以及相關的模塊、WEB 環境等信息。
危險等級:中
2.passthru()
功能描述:允許執行一個外部程序并回顯輸出,類似于 exec()。
危險等級:高
3.exec()
功能描述:允許執行一個外部程序(如 UNIX Shell 或 CMD 命令等)。
危險等級:高
4.system()
功能描述:允許執行一個外部程序并回顯輸出,類似于 passthru()。
危險等級:高
5.chroot()
功能描述:可改變當前 PHP 進程的工作根目錄,僅當系統支持 CLI 模式PHP 時才能工作,且該函數不適用于 Windows 系統。
危險等級:高
6.scandir()
功能描述:列出指定路徑中的文件和目錄。
危險等級:中
7.chgrp()
功能描述:改變文件或目錄所屬的用戶組。
危險等級:高
8.chown()
功能描述:改變文件或目錄的所有者。
危險等級:高
9.shell_exec()
功能描述:通過 Shell 執行命令,并將執行結果作為字符串返回。
危險等級:高
10.proc_open()
功能描述:執行一個命令并打開文件指針用于讀取以及寫入。
危險等級:高
11.proc_get_status()
功能描述:獲取使用 proc_open() 所打開進程的信息。
危險等級:高
12.error_log()
功能描述:將錯誤信息發送到指定位置(文件)。
安全備注:在某些版本的 PHP 中,可使用 error_log() 繞過 PHP safe mode,
執行任意命令。
危險等級:低
13.ini_alter()
功能描述:是 ini_set() 函數的一個別名函數,功能與 ini_set() 相同。具體參見 ini_set()。
危險等級:高
14.ini_set()
功能描述:可用于修改、設置 PHP 環境配置參數。
危險等級:高
15.ini_restore()
功能描述:可用于恢復 PHP 環境配置參數到其初始值。
危險等級:高
16.dl()
功能描述:在 PHP 進行運行過程當中(而非啟動時)加載一個 PHP 外部模塊。
危險等級:高
17.pfsockopen()
功能描述:建立一個 Internet 或 UNIX 域的 socket 持久連接。
危險等級:高
18.syslog()
功能描述:可調用 UNIX 系統的系統層 syslog() 函數。
危險等級:中
19.readlink()
功能描述:返回符號連接指向的目標文件內容。
危險等級:中
20.symlink()
功能描述:在 UNIX 系統中建立一個符號鏈接。
危險等級:高
21.popen()
功能描述:可通過 popen() 的參數傳遞一條命令,并對 popen() 所打開的文件進行執行。
危險等級:高
22.stream_socket_server()
功能描述:建立一個 Internet 或 UNIX 服務器連接。
危險等級:中
23.putenv()
功能描述:用于在 PHP 運行時改變系統字符集環境。在低于 5.2.6 版本的 PHP 中,可利用該函數修改系統字符集環境后,利用 sendmail 指令發送特殊參數執行系統 SHELL 命令。
危險等級:高
【21種PHP 危險函數全解析】相關文章:
PHP的壓縮函數06-21
淺析php函數的實例06-08
php外部執行命令函數10-27
簡單介紹php構造函數用法08-31
PHP中函數的使用說明09-01
PHP中的排序函數區別分析08-23
探討PHP函數的實現原理及性能07-07
php對圖像的各種處理函數代碼總結07-03
php字符串處理函數大全08-21
php如何過濾危險html代碼09-21