Я не совсем понял, каким образом в баше можно нормально экранировать переменные, так чтобы ни кавычки (" и ""), ни \ | / ` ~ не обрабатывались сами башем, если они есть в переменной.
Пример:
cat text_so_spetssivolami | ( while read line; do
echo $line
if [ $line == «1» ];
then
echo YES
fi
done
Ещё пример:
~# cat /tmp/lol
;:'":'«\/.;|\/`~`@#23!$%^&*()+_}{[]{}][
~# cat /tmp/lol | ( read line; echo »${line}" )
;:'":'«/.;|/`~`@#23!$%^&*()+_}{[]{}][
Как бы я не экранировал $line, всё-равно какие-то спец-символы (в зависимости от вида экранирования) заставляют bash работать некорректно.
Особенно меня интересует, как можно писать на баше безопасно. Т.е. чтобы даже если входящем потом (тут cat) мог управлять злоумышленник, то всё-равно они никак не мог бы преодолеть экранирование.
Ответ на:
комментарий
от sdio
Ответ на:
комментарий
от gentoo_root
Ответ на:
комментарий
от drBatty
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от router
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [bash] странное поведение (2009)
- Форум bash - экранирование кавычек (2012)
- Форум Bash. command not found (2012)
- Форум Bash использование строк (2013)
- Форум Глюки bash'а? (2014)
- Форум [тупняк][bash+netcat] как соорудить двусторонний обмен? (2010)
- Форум Bash чат - опасные символы (2022)
- Форум sed: Экранировать слэш «/» (2022)
- Форум как заставить работать zenity (2011)
- Форум Сравнение двух файлов bash [туплю] (2011)