У меня есть приложение python, которое работает со списками URL-адресов и создает скрипт bash в качестве вывода.
Как очистить URL-адрес, чтобы злоумышленник не мог вводить команды bash, которые будут выполняться в моей инфраструктуре.
Например:
http://www.circl.lu/a.php?rm -Rf /etc
Также: code.google.com/archive/p/owasp-esapi-python
Будете ли вы нужно очищать его, зависит от того, что вы с ним делаете. В качестве простого примера, printf '%s\n' "$UNSANITIZED_URL"
полностью безопасен. (При условии, что в вашей оболочке нет ошибок переполнения буфера или чего-то подобного.)
@DirtyBit выводится скрипт bash, мне нужно очистить URL-адрес в Python
@chepner вывод (сценарий bash) может выполняться в разных системах, поэтому я не могу его контролировать
Я предполагаю, что urllib
— это возможность анализировать URL-адреса, чтобы избежать вредоносных символов. По крайней мере, это выглядит как хороший ресурс для вашего варианта использования. См. документы URL-цитирование.
from urllib.parse import quote
quote('touch foo', safe='/')
quote('rm -Rf /etc', safe='/')
quote('http://www.circl.lu/a.php?rm -Rf /etc', safe='/:?&')
#'touch%20foo'
#'rm%20-Rf%20/etc'
#'http://www.circl.lu/a.php?rm%20-Rf%20/etc'