以下のコードスニペットを使用してJasperReportsを使用してPDFを生成することができます。checkmarxを使用した場合の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);
私はcheckmarxを使用して自分のコードをスキャンするときしかし、それはコードスニペット以下に反映XSSの脆弱性を示し、私は HtmlUtils.htmlEscape
を使用して、すべての入力パラメータを免れたが、それでも同じ問題に直面しているこの問題を解決します。
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(barcodePdfBytes, 0, barcodePdfBytes.length);
私はさらに私の端から分析し、消毒全体byte[]
にしようとしたが、それは何らかの形で破損しているPDF形式およびユーザーは、PDF応答してを取得されていません。
ここでいくつかの助けを探しています。ポインタをありがとうございます。 ありがとうございました。
コードの大部分を追加して、疑わしいコードの流れを確認できますか?たとえば、ユーザーからのパラメータがあるとします。また、outputStreamとは何ですか? – yaloner
偽陽性としてマークするか、ストリームに直接エクスポートします。 –
@PetterFribergもっと詳しく教えてもらえますか?私はJasperのレポート – Gautam