Дезинфицировать входные данные для внешнего процесса - PullRequest
0 голосов
/ 11 февраля 2011

У меня есть Java-программа, которая взаимодействует с репозиториями Mercurial с помощью клиента hg, выполняемого с помощью commons exec.Поскольку мне придется время от времени передавать пользовательские входные данные в hg (например, настройки прокси-сервера, URL-адрес источника и т. Д.), Какие библиотеки доступны для очистки входных данных для меня?В настоящее время я просто раздеваю что-нибудь после и включая первый ';'символ, но я не уверен в других методах, где кто-то может запускать произвольные команды.

1 Ответ

0 голосов
/ 26 мая 2011

Вы не можете быть в безопасности путем внесения в черный список (это то, что вы делаете). Вместо этого вы должны внести в белый список разрешенные символы (буквы, цифры, пробел, точка, ...). Не поддавайтесь искушению в черный список, он никогда не работает. (Например, вы код выживает пробелы? Он переживает \ 0 символов?)

...