让我们假设我们有一个简单的PHP脚本应该从$_GET数组中获取ssh_host,ssh_username,ssh_port并尝试使用此参数连接到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()?
谢谢.
解决方法:
我会说这就是为escapeshellarg
函数创建的 – 所以,为了转义参数,那就是你应该使用的那个.
基本上:
>要转义一个参数,请使用escapeshellarg
>要逃避整个命令,请使用escapeshellcmd
.
引用各自的文件:
escapeshellcmd():
此函数应用于确保在将此数据传递给exec()或system()函数或反引号运算符之前转义来自用户输入的任何数据.
escapeshellarg():
此函数应用于将单个参数转义为来自用户输入的shell函数.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。