Защита ввода пользователя с помощью escapeshellarg () - PullRequest
0 голосов
/ 18 марта 2020

Мне нужно использовать некоторые пользовательские вводы с некоторыми командами shell_exe c и exe c. Я знаю, что это может быть большой риск для безопасности, поэтому я хочу убедиться, что я все делаю правильно.

Мои оригинальные команды выглядят так:

shell_exec('php getText.php "' . $_GET['title'] . '"');

exec('php importImages.php --comment="' . $_GET['comment'] . '"');

Оборачивает пользовательские вводы с помощью escapeshellarg как я могу обезопасить эту уязвимость? Будут ли проблемы с его использованием? Или что-то еще, что меня должно беспокоить?

shell_exec('php getText.php "' . escapeshellarg($_GET['title']) . '"');

exec('php importImages.php --comment="' . escapeshellarg($_GET['comment']) . '"');

1 Ответ

1 голос
/ 18 марта 2020

escapeshellarg() будет заключать в кавычки и экранировать ваши значения для вас.

var_dump(escapeshellarg('foo'));
// output: string(5) "'foo'"

Таким образом, ваш код должен выглядеть следующим образом:

shell_exec('php getText.php ' . escapeshellarg($_GET['title']));
exec('php importImages.php --comment=' . escapeshellarg($_GET['comment']));
...