Как стать автором
Обновить

Комментарии 2

От себя хотелось бы добавить ещё 2 способа защиты:


  1. В некоторых языках (например Java и Python), при вызове команды есть 2 перегруженых метода: первый принимает строку с полной командой, а второй — массив, где первый аргумент это команда, а последующие аргументы это аргументы для конкретно это команды (например ["echo", "123", "|", "rm", "-rf", "/"] просто напечатает все переданные аргументы). Таким образом, если у вас нет 100% контроля над входными данными, то лучше использовать второй способ.
  2. Когда работаете со скриптами, не забывайте оборачивать переменные в кавычки:
    var = "123 | rm -rf /"
    echo "$var"

Был удивлён, что в статье ни разу не упомянуты регулярные выражения. А ведь их применение -- это довольно эффективная методика борьбы с некорректными входными данными вообще и с инъекциями кода в частности.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий