Представим себе, что у нас есть простой скрипт php, который должен получить ssh_host
, ssh_username
, ssh_port
из массива $ _GET и попытаться подключиться с помощью этих параметров к SSH.
$port = escapeshellcmd($_GET['ssh_port']); $host = escapeshellcmd($_GET['ssh_host']); $username = escapeshellcmd($_GET['ssh_username']); $answer = shell_exec("ssh -p " . $port . " " . $user . "@" . $host);
Is escapeshellcmd()
достаточно или мне нужно что-то более сложное? Или, может быть, я должен использовать escapeshellarg()
в этом примере?
Спасибо.
Я бы сказал, что это то, для чего escapeshellarg
функция escapeshellarg
поэтому, чтобы избежать параметров, это тот, который вы должны использовать.
В основном :
escapeshellarg
escapeshellcmd
. Цитируя их соответствующие документы:
escapeshellcmd ():
Эта функция должна использоваться, чтобы гарантировать, что любые данные, поступающие с пользовательского ввода, будут экранированы до того, как эти данные будут переданы функциям exec()
или system()
или оператору backtick.
escapeshellarg ():
Эта функция должна использоваться для исключения отдельных аргументов для функций оболочки, поступающих с пользовательского ввода.