在編譯PHP 時,如無特殊需要,一定禁止編譯產生CLI 命令列模式的PHP 解析支援。可在編譯時使用–disable-CLI。一旦編譯產生CLI 模式的PHP,則可能會被入侵者利用程式建立一個WEB Shell 後門進程或透過PHP 執行任意程式碼。
phpinfo()
功能描述:輸出PHP 環境資訊以及相關的模組、WEB 環境等資訊。
危險等級:中
passthru()
功能描述:允許執行一個外部程式並回顯輸出,類似exec()。
危險等級:高
exec()
功能描述:允許執行一個外部程式(如UNIX Shell 或CMD 指令等)。
危險等級:高
system()
功能描述:允許執行一個外部程式並回顯輸出,類似passthru()。
危險等級:高
chroot()
功能描述:可改變目前PHP 程序的工作根目錄,僅當系統支援CLI 模式PHP 時才能運作,且此函數不適用於Windows 系統。
危險等級:高
scandir()
功能描述:列出指定路徑中的檔案和目錄。
危險等級:中
chgrp()
功能描述:改變檔案或目錄所屬的使用者群組。
危險等級:高
chown()
功能描述:改變檔案或目錄的擁有者。
危險等級:高
shell_exec()
功能描述:透過Shell 執行指令,並將執行結果傳回為字串。
危險等級:高
proc_open()
功能描述:執行一個命令並開啟檔案指標用於讀取以及寫入。
危險等級:高
proc_get_status()
功能描述:取得使用proc_open() 所開啟進程的資訊。
危險等級:高
error_log()
功能描述:將錯誤訊息傳送到指定位置(檔案)。
安全備註:在某些版本的PHP 中,可使用error_log() 繞過PHP safe mode,
執行任意命令。
危險等級:低
ini_alter()
功能描述:是ini_set() 函數的一個別名函數,功能與ini_set() 相同。詳見ini_set()。
危險等級:高
ini_set()
功能描述:可用於修改、設定PHP 環境配置參數。
危險等級:高
ini_restore()
功能描述:可用於恢復PHP 環境配置參數到其初始值。
危險等級:高
dl()
功能描述:在PHP 進行運作過程當中(而非啟動時)載入一個PHP 外部模組。
危險等級:高
pfsockopen()
功能描述:建立一個Internet 或UNIX 域的socket 持久連線。
危險等級:高
syslog()
功能描述:可呼叫UNIX 系統的系統層syslog() 函數。
危險等級:中
readlink()
功能描述:傳回符號連結指向的目標檔案內容。
危險等級:中
symlink()
功能描述:在UNIX 系統中建立一個符號連結。
危險等級:高
popen()
功能描述:可透過popen() 的參數傳遞一條指令,並對popen() 所開啟的檔案進行執行。
危險等級:高
stream_socket_server()
功能描述:建立一個Internet 或UNIX 伺服器連線。
危險等級:中
putenv()
功能描述:用於在PHP 運行時改變系統字元集環境。在低於5.2.6 版本的PHP 中,可利用此函數修改系統字元集環境後,利用sendmail 指令傳送特殊參數執行系統SHELL 指令。
危險等級:高