shell 元字元轉義

escapeshellcmd

(PHP 4, PHP 5, PHP 7, PHP 8)

escapeshellcmdshell 元字元轉義

說明

escapeshellcmd(string $command): string

escapeshellcmd() 對字串中可能會欺騙 shell 命令執行任意命令的字元進行轉義。 此函式保證使用者輸入的數據在傳送到 exec()system() 函式,或者 執行操作符 之前進行轉義。

反斜線(\)會在以下字元之前插入: &#;`|*?~<>^()[]{}$\, \x0A\xFF'" 僅在不配對兒的時候被轉義。 在 Windows 平臺上,所有這些字元以及 %! 字元都會被空格代替。

參數

command

要轉義的命令。

返回值

轉義后的字串。

範例

示例 #1 escapeshellcmd() example

<?php
// 我們故意允許任意數量的參數
$command './configure '.$_POST['configure_options'];

$escaped_command escapeshellcmd($command);
 
system($escaped_command);
?>
警告

escapeshellcmd() 應被用在完整的命令字串上。 即使如此,攻擊者還是可以傳入任意數量的參數。 請使用 escapeshellarg() 函式 對單個參數進行轉義。

更新日誌

版本 說明
5.4.43, 5.5.27, 5.6.11 感嘆號會被空格所替換。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *