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
本作品採用《CC 協議》,轉載必須註明作者和本文連結