在編譯 PHP 時,如無特殊需要,一定禁止編譯生成 CLI 命令列模式的 PHP 解析支援。可在編譯時使用 –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 命令。
危險等級:高
以上就是PHP 危險函數有哪些?的詳細內容,更多請關注TW511.COM其它相關文章!