У меня есть сценарий python, который включает в себя инструмент командной строки bash, который получает свои переменные из внешнего источника (переменные среды). Есть ли способ выполнить какое-либо мягкое экранирование, чтобы предотвратить выполнение злонамеренным пользователем неверного кода в одном из этих параметров.
например, если скрипт выглядит следующим образом
/bin/sh
/usr/bin/tool ${VAR1} ${VAR2}
и кто-то установил VAR2 следующим образом
export VAR2=123 && \rm -rf /
, поэтому он может не обрабатывать VAR2 в качестве чистого ввода и выполните команду rm
.
Есть ли способ сделать переменную неисполнимой и получить строку как есть для инструмента командной строки в качестве ввода?