php – 安全执行shell脚本;在执行之前逃避变种

让我们假设我们有一个简单的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函数.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...