Php 安全执行shell脚本;执行前转义变量

Php 安全执行shell脚本;执行前转义变量,php,security,shell,Php,Security,Shell,让我们设想一下,我们有一个简单的php脚本,它应该从$\u get数组获取ssh\u主机,ssh\u用户名,ssh\u端口,并尝试使用此参数连接到ssh $port = escapeshellcmd($_GET['ssh_port']); $host = escapeshellcmd($_GET['ssh_host']); $username = escapeshellcmd($_GET['ssh_username']); $answer = shell_exec("ss

让我们设想一下,我们有一个简单的php脚本,它应该从$\u get数组获取
ssh\u主机
ssh\u用户名
ssh\u端口
,并尝试使用此参数连接到ssh

$port      = escapeshellcmd($_GET['ssh_port']);
$host      = escapeshellcmd($_GET['ssh_host']);
$username  = escapeshellcmd($_GET['ssh_username']);

$answer = shell_exec("ssh -p " . $port . " " . $user . "@" . $host);
escapeshellcmd()
够了吗,还是我需要更棘手的东西? 或者在本例中我应该使用
escapeshellarg()


谢谢。

我想说,这就是创建函数的目的——因此,为了转义参数,您应该使用它

基本上:

  • 要转义一个参数,请使用
  • 要从整体上逃脱命令,请使用

引用各自的文件:

escapeshellcmd():
此函数用于确保在将来自用户输入的任何数据传递到
exec()
system()
函数或backtick操作符之前,对这些数据进行转义。

escapeshellarg():
此函数用于将单个参数转义到来自用户输入的shell函数