Я использую пружинный контроллер, где у меня есть метод get, чтобы загрузить файл.
Метод контроллера используется для загрузки файла, и я задаю имя файла следующим образом ..
response.setHeader("Content-disposition", "attachment;filename=" + reportname+ ".csv");
гдеимя файла происходит от метода contrller, метод выглядит следующим образом:
@RequestMapping(value = "/{reportname}")
public void downloadCSV(HttpServletResponse response, @PathVariable(name="reportname",required=true) @NotBlank String reportname)
throws IOException {
Вот что я получаю в checkmarx:рапорт имяЗатем значение этого элемента проходит через код без надлежащей очистки или проверки и в конечном итоге используется в заголовке ответа HTTP в downloadCSV. Это может разрешить атаку разделения ответа HTTP в некоторых старых версиях, которые не ослабляют эту атаку.