Мне нужно вызвать сценарий Unix в моем коде Java, дождаться его выполнения и получить вывод.Сценарий выполнит «поиск», а пользователь предоставит каталог, в котором он хочет найти «поиск», в
String[] cmd = new String[] { "/bin/sh", "-c",
runnerScript.getAbsolutePath() + " " + Param1 };
Process p = Runtime.getRuntime().exec(cmd);
Проблема заключается в следующем: как я могу запретить вводу ' && rm -rf *'
или ' / -exec rm..'
?
У меня есть идея, например, проверить, существует ли каталог на сервере, или использовать метод, подобный isLetterOrDigit()
, но я хочу знать, существует ли более безопасный путь.Я знаю, что для Sql Query я могу использовать PreparedStatement, чтобы обойти эту проблему.Есть ли что-то подобное при вызове скрипта?