在PHP中,常用的命令执行函数有 exec()、shell_exec()、system()、passthru() 和 escapeshellcmd()。
exec():执行外部程序并且捕获输出的结果。
$output = [];
$return_var = 0;
exec('ls -al', $output, $return_var);
print_r($output);
echo "Return Var: $return_var";shell_exec():通过 shell 执行命令,并且捕获输出。
$output = shell_exec('ls -al');
echo $output;system():执行外部程序,并且输出结果。
system('ls -al', $return_var);
echo "Return Var: $return_var";passthru():执行外部程序,并且输出原始输出。
passthru('ls -al', $return_var);
echo "Return Var: $return_var";escapeshellcmd():用于处理将字符串作为 shell 命令执行的情况,防止潜在的注入攻击。
$command = escapeshellcmd('ls -al ' . $userInput);
system($command);注意:在实际应用中,应当避免使用直接注入用户输入的方式来构造命令,以免遭受 shell 注入攻击。始终使用参数化的方法或者函数来处理用户输入,例如 escapeshellcmd() 在特定上下文中提供安全转义。