[OpenJDK 2D-Dev] <AWT Dev> Safe to take Base64 encoded image from client?

Sergey Bylokhov sergey.bylokhov at oracle.com
Mon May 29 21:48:03 UTC 2017


Hi,
The question is related to Java2D API and 2d-dev (cc).

----- timo.vander.schuit at globalrelay.net wrote:

> Hi,
> 
> The front-end generates a base64 encoded image of a graph and send it
> to the backend to use it with pdfbox to create a pdf file.
> Are there any security concerns with in particular this line
> "BufferedImage bufImg = ImageIO.read(new
> ByteArrayInputStream(imageByte));
> “?
> 
> @POST
> @Consumes(MediaType.APPLICATION_JSON)
> @Path("/pdfbox")
> public void getChartsPdf(String base64ImageData) throws IOException{
> 
>     PDDocument doc = null;
>     byte[] imageByte;
>     String base64Image = base64ImageData.split(",")[1];
>     BASE64Decoder decoder = new BASE64Decoder();
>     imageByte = decoder.decodeBuffer(base64Image);
>     try {
>         doc = new PDDocument();
>         PDPage page = new PDPage();
>         doc.addPage(page);
>         PDFont font = PDType1Font.HELVETICA_BOLD;
>         PDPageContentStream contentStream = new
> PDPageContentStream(doc, page);
> 
>         BufferedImage bufImg = ImageIO.read(new
> ByteArrayInputStream(imageByte));
>         PDXObjectImage ximage = new PDPixelMap(doc, bufImg);
> 
>         contentStream.beginText();
>         contentStream.setFont( font, 12 );
>         contentStream.moveTextPositionByAmount( 50, 700 );
>         contentStream.drawString("Timeline");
>         contentStream.endText();
>         contentStream.drawXObject(ximage, 20, 500,
> ximage.getWidth()/2, ximage.getHeight()/2);
>         contentStream.close();
>         doc.save("testCharts.pdf");
>     } catch (Exception e) {
>         System.err.println(e.getMessage());
>     } finally {
>         if (doc != null) {
>             doc.close();
>         }
>     }
> }
> 
> Regards,
> 
> Timo


More information about the 2d-dev mailing list