有時候為了安全我們需要禁掉一些PHP危險函數,本文整理了一些PHP中的危險函數,以供大家參考。
函數 | 作用 | 建議 | 級別 |
---|---|---|---|
phpinfo | 輸出 PHP 環境資訊以及相關的模組、WEB 環境等資訊。 | 禁用影響不大 | 中 |
passthru | 允許執行一個外部程式並回顯輸出 | 禁用影響不大 | 高 |
exec | 允許執行一個外部程式(如 UNIX Shell 或 CMD 命令等) | 禁用影響不大 | 高 |
system | 允許執行一個外部程式並回顯輸出 | 禁用影響不大 | 高 |
chroot | 可改變當前 PHP 進程的工作根目錄,僅當系統支援 CLI 模式 | 禁用影響不大 | 高 |
scandir | 列出指定路徑中的檔案和目錄。 | 有可能受影響 | 中 |
chgrp | 改變檔案或目錄所屬的使用者組。 | 禁用影響不大 | 高 |
chown | 改變檔案或目錄的所有者 | 禁用影響不大 | 高 |
shell_exec | 通過 Shell 執行命令,並將執行結果作為字串返回。 | 禁用影響不大 | 高 |
proc_open | 執行一個命令並開啟檔案指標用於讀取以及寫入。 | 禁用有可能沒法執行定時任務 | 高 |
proc_get_status | 獲取使用 proc_open () 所開啟進程的資訊。 | 禁用有可能沒法執行定時任務 | 高 |
ini_alter、ini_set | 可用於修改、設定 PHP 環境設定引數。 | 禁用影響不大 | 高 |
ini_restore | 可用於恢復 PHP 環境設定引數到其初始值。 | 禁用影響不大 | 高 |
dl | 在 PHP 進行執行過程當中(而非啟動時)載入一個 PHP 外部模組 | 禁用影響不大 | 高 |
pfsockopen | 建立一個 Internet 或 UNIX 域的 socket 持久連線 | 禁用可能會影響 RPC、Socket 通訊等 | 高 |
syslog | 可呼叫 UNIX 系統的系統層 syslog () 函數 | 禁用影響不大 | 中 |
readlink | 返回符號連線指向的目標檔案內容 | 禁用影響不大 | 中 |
symlink | 建立軟連結 | 禁用影響不大 | 中 |
popen | 可通過 popen () 的引數傳遞一條命令,並對 popen () 所開啟的檔案進行執行 | 禁用影響不大 | 高 |
stream_socket_server | 建立一個 Internet 或 UNIX 伺服器連線 | 禁用可能會影響 RPC、Socket 通訊等 | 高 |
註:以上結果,並不是最終結果。最終需要結合業務,分析其對業務的影響範圍。禁用的方法如下。
開啟php.ini,搜尋disable_functions,追加即可。
disable_functions = passthru,exec,system,chroot,chgrp,chown,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog, syslog,readlink,popepassthru,stream_socket_server以上就是PHP中的危險函數你知道嗎?的詳細內容,更多請關注TW511.COM其它相關文章!