Мне нужно вызвать wget
из серверного приложения с частями URL-адреса, которыми управляет пользователь. Если хранить аргументы в переменной URL
среде с использованием setenv()
в серверном приложении, а затем выполнить в раздвоенной оболочкеПередача аргумента через переменную окружения, полностью ли она безопасна?
wget somehost/"$URL"
я могу предположить, что $URL
не раскрывается каким-либо образом, и это интерпретируется полностью как часть url? Совместим ли это с оболочкой Bourne (так sh
, а не bash
, например, Ubuntu)?
Как запустить wget из серверного приложения? Использование 'system()'? – Jens
Двойные кавычки не должны расширяться или интерпретироваться любой совместимой с POSIX оболочкой. – PSkocik
Возможные проблемы: 1. Если порожденные источники оболочки '.bashrc', тогда он будет искать URL-адрес там, если он существует. 2. Если вы создаете несколько процессов с разными «URL», некоторые из них могут получить неправильный 'URL'. – alvits