Sanitze путь для командной строки Windows (cmd.exe) - PullRequest
0 голосов
/ 15 октября 2018

Я бы хотел запустить программу из командной строки Windows (cmd.exe) с помощью такой команды: «myProg.exe [путь]», например «myProg.exe c: \ files \ file.txt», нопуть не определен пользователем и должен быть проверен с помощью своего рода алгоритма.(без проверки вручную) Я должен запретить пользователю «убегать» от команды и запускать свои собственные команды.

Так как я могу санировать путь, чтобы быть уверенным, что он не может быть связан с другими командами в Windows??Дезинфекция может быть сделана в самостоятельно написанной программе, такой как Java-программа

1 Ответ

0 голосов
/ 15 октября 2018

ProcessBuilder заменил Runtime.exec много лет назад.ProcessBuilder передает аргументы непосредственно процессу;поскольку вы сами не строите командную строку, нет возможности непреднамеренно выполнить вторую команду.

ProcessBuilder builder = new ProcessBuilder("myProg.exe", userPath);
builder.inheritIO();
Process process = builder.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...