繁体   English   中英

路径操纵问题Fortify

[英]Path manipulation issue Fortify

嗨,我已经使用Fortify工具扫描了一个应用程序,在生成的报告中,以下方法遇到了路径操纵问题。

注意:报告中未显示错误行号。 有人可以建议我如何解决吗?

private MimeMessage prepareMessage(EmailMessage req) throws EmailProviderException {
        long start=System.currentTimeMillis(),finish=0;

    try {
        MimeMessage message = emailSender.createMimeMessage();

        // create a multipart message
        MimeMessageHelper helper = new MimeMessageHelper(message, true);

        // set email addresses
        helper.setFrom(convertAddress(req.getFromAddress()));
        helper.setTo(convertAddress(req.getToAddress()));
        helper.setCc(convertAddress(req.getCcAddress()));
        helper.setBcc(convertAddress(req.getBccAddress()));

        // set subject and body
        helper.setSubject(req.getEmailSubject());
        String emailBody = req.getEmailBody();
        String emailMime = req.getEmailMimeType();

        MimeBodyPart messagePart = new MimeBodyPart();
        DataSource bodyDataSource = new ByteArrayDataSource(emailBody, emailMime);
        messagePart.setDataHandler(new DataHandler(bodyDataSource));
        helper.getMimeMultipart().addBodyPart(messagePart);

        // add attachments
        List<EmailAttachment> lAttach = req.getEmailAttachment();
        if (lAttach != null) {
            for (EmailAttachment attachMnt: lAttach) {
                DataSource dSource = new ByteArrayDataSource(attachMnt
                        .getContent(), attachMnt
                        .getMimeType());
                helper.addAttachment(attachMnt.getFileName(), dSource);
            }
        }

        finish=System.currentTimeMillis();
        statsLogger.info(new FedExLogEntry("prepareMessage took {0}ms",new Object[]{finish-start}));    

        return message;

    } catch (Exception e) {

        // covers MessagingException, IllegalStateException, IOException, MailException
        String emsg = new StringBuilder("Unable to prepare smtp message.")
            .append("\n").append(req.toString()).toString();
        logger.warn(emsg, e);
        throw new EmailProviderException(emsg, e);
    }   
}

如果Fortify在尝试向您显示问题所在的正确行时遇到问题,则Fortify在扫描并将结果呈现到FPR时可能会遇到解析错误。 您可以尝试做的一件事是在不同的build-id下重新扫描应用程序并生成一个新的FPR。 除此之外,我不知道。 抱歉。 我建议您检查一下您的日志文件,以查看翻译/扫描期间是否有任何错误或警告。

但是在查看了您的代码示例之后,我认为Fortify正在污染参数req并标记尝试将文件添加为附件时发生的操作。 您的接收器最有可能在helper.addAttachment(attachMnt.getFileName(), dSource);

您想要先验证附件本身的文件名,然后再尝试将其保存到磁盘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM