我可以在下面的代码片段的帮助下使用 JasperReports 以所需的输出格式生成 PDF。
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);
但是,当我使用 checkmarx 扫描我的代码时,它显示了下面代码片段的反射 XSS 漏洞,为了解决这个问题,我使用了所有输入参数,
HtmlUtils.htmlEscape
但仍然面临同样的问题。
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(barcodePdfBytes, 0, barcodePdfBytes.length);
我从我的最后进一步分析并尝试对整个文件进行消毒byte[]
,但它以某种方式损坏了 PDF 格式,并且用户没有得到 pdf 响应。
在这里寻求帮助。不胜感激任何指针。提前致谢。