首頁 >後端開發 >PHP問題 >PHP 危險函數有哪些?

PHP 危險函數有哪些?

Guanhui
Guanhui原創
2020-06-28 15:52:124621瀏覽

PHP 危險函數有哪些?

在編譯 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

以上是PHP 危險函數有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn