Я ищу, чтобы предотвратить инъекцию оболочки. У меня в коде bash есть следующий код:
`cmd $user_input1 $user_input2`
Я пока не нашел способа использовать этот код. Я думал, что если
user_input1="| ls >/tmp/hi"
, то будет создан файл с именем /tmp/hi
. Это не так, поскольку специальные символы, такие как |
, по-видимому, игнорируются и просто передаются в качестве буквальных аргументов cmd
. Есть ли какой-нибудь способ интерпретировать эти специальные хартии для использования некоторых оболочек?