Комментарии 2
От себя хотелось бы добавить ещё 2 способа защиты:
- В некоторых языках (например Java и Python), при вызове команды есть 2 перегруженых метода: первый принимает строку с полной командой, а второй — массив, где первый аргумент это команда, а последующие аргументы это аргументы для конкретно это команды (например
["echo", "123", "|", "rm", "-rf", "/"]
просто напечатает все переданные аргументы). Таким образом, если у вас нет 100% контроля над входными данными, то лучше использовать второй способ. - Когда работаете со скриптами, не забывайте оборачивать переменные в кавычки:
var = "123 | rm -rf /" echo "$var"
+2
Был удивлён, что в статье ни разу не упомянуты регулярные выражения. А ведь их применение -- это довольно эффективная методика борьбы с некорректными входными данными вообще и с инъекциями кода в частности.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
OS Command Injection: ось под контролем