Внедрение командной строки CheckmarxJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Внедрение командной строки Checkmarx

Сообщение Anonymous »


Мы используем ProcessBuilder на Java для выполнения программы Python на компьютере с Linux. Мы добавили все проверки, предложенные Checkmarx, а затем попытались выполнить приведенный ниже пример, предоставленный Checkmarx.

public String ExecuteSystemCommand_WithParameters (запрос HttpServletRequest) выдает ServletException, IOException { Строковая командаResult = ""; Строка userCommand = request.getParameter("Команда"); userCommand = userCommand.replaceAll("[^A-Za-z0-9]", ""); пытаться { Построитель ProcessBuilder = новый ProcessBuilder("/bin/sh/","-c", PROGRAM_NAME, пользовательская команда); Map environ = builder.environment(); setEnvironmentVars (окружающая среда); Подпроцесс процесса = builder.start(); BufferedReader irProcOutput = новый BufferedReader(новый InputStreamReader(subProc.getInputStream())); Строковая линия = ноль; while ((line = irProcOutput.readLine()) != null) командаРезультат += строка; irProcOutput.close(); } catch (исключение ex) { handleExceptions (ex); } вернуть командуРезультат; } Однако этот образец, предоставленный Checkmarx в качестве решения, также приводит к тому же дефекту. Пожалуйста, сообщите, что можно изменить в приведенной ниже программе, чтобы устранить уязвимость внедрения командной строки.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»