원하는 출력 형식으로 아래 코드 스 니펫을 사용하여 JasperReports를 사용하여 PDF를 생성 할 수 있습니다.checkletx에서 Servletoutputstream.write로 인한 XSS 취약점
Map<String, Object> parameters = new HashMap<>();
parameters.put("code", HtmlUtils.htmlEscape(request.getParameter("code")));
JasperPrint jasperPrint = JasperFillManager.fillReport(path, parameters, dataSource);
barcodePdfBytes = JasperExportManager.exportReportToPdf(jasperPrint);
나는 그것이 내가 HtmlUtils.htmlEscape
여전히 같은 문제에 직면을 사용하여 모든 입력 매개 변수를 탈출 코드 아래에이 문제를 해결하기위한 XSS 취약점을 반영 보여줍니다 checkmarx를 사용하여 내 코드를 스캔 그러나 때.
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(barcodePdfBytes, 0, barcodePdfBytes.length);
본인은 나의 끝에서 분석하고 소독 전체 byte[]
을 시도했지만 어떻게 든 손상 PDF 형식과 사용자가 PDF의 inresponse을받지 않습니다.
어떤 도움을 찾고 있습니다. 포인터를 사용해 주셔서 감사합니다. 미리 감사드립니다.
의심되는 코드의 흐름을 볼 수 있도록 코드의 상당 부분을 추가 할 수 있습니까? 예를 들어 사용자가 제공하는 매개 변수가있는 경우 또한, outputStream은 무엇입니까? – yaloner
거짓 표시로 표시하거나 스트림으로 직접 내 보냅니다. –
@PetterFriberg 좀더 자세히 설명해 주시겠습니까? Jasper 보고서 – Gautam