(PHP 4, PHP 5, PHP 7, PHP 8)
escapeshellcmd — shell 元字符轉義
$command
): stringescapeshellcmd() 對字符串中可能會(huì )欺騙 shell 命令執行任意命令的字符進(jìn)行轉義。 此函數保證用戶(hù)輸入的數據在傳送到 exec() 或 system() 函數,或者 執行操作符 之前進(jìn)行轉義。
反斜線(xiàn)(\)會(huì )在以下字符之前插入:
&#;`|*?~<>^()[]{}$\
, \x0A
和 \xFF
。 '
和 "
僅在不配對兒的時(shí)候被轉義。
在 Windows 平臺上,所有這些字符以及 %
和 !
字符都會(huì )被空格代替。
command
要轉義的命令。
轉義后的字符串。
示例 #1 escapeshellcmd() example
<?php
// 我們故意允許任意數量的參數
$command = './configure '.$_POST['configure_options'];
$escaped_command = escapeshellcmd($command);
system($escaped_command);
?>
escapeshellcmd() 應被用在完整的命令字符串上。 即使如此,攻擊者還是可以傳入任意數量的參數。 請使用 escapeshellarg() 函數 對單個(gè)參數進(jìn)行轉義。
版本 | 說(shuō)明 |
---|---|
5.4.43, 5.5.27, 5.6.11 | 感嘆號會(huì )被空格所替換。 |