escapeshellcmd
shell 元字符转义
escapeshellcmd
PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8
escapeshellcmd() 是一个用于防止命令行注入的安全函数。它会转义字符串中可能被用于注入的字符,以便该字符串可以安全地作为 shell 命令的一部分执行。这个函数主要用于转义程序名和整条命令行中的参数(不适合单独对每个参数使用,应使用 escapeshellarg())。
string escapeshellcmd(string $command)
返回处理后的字符串,其中潜在危险的字符会被转义。
<?php $command = 'ls; rm -rf /'; $safe_command = escapeshellcmd($command); echo $safe_command; // 可以使用 system()、exec()、shell_exec() 执行 $safe_command ?>
上面的例子中,$command 包含了一个潜在的恶意命令 rm -rf /。通过 escapeshellcmd() 处理后,该命令中的危险字符(如分号)会被转义,避免实际执行危险命令,从而提升安全性。在输出中可以看到被转义后的结果,确保后续调用 shell 命令函数时是安全的。