2014-04-29 5 views
0

안녕하세요 저는 Fortify 도구를 사용하여 응용 프로그램을 스캔했습니다. 생성 된 보고서에서 다음 방법으로 경로 조작 문제가 발생했습니다.경로 조작 문제 Fortify

참고 : 보고서에는 오류 행 번호가 표시되지 않습니다. 누구나 그것을 remove하는 방법을 제안 할 수 있습니까?

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); 
    } 
} 

답변

0

흠. Fortify가 문제가있는 정확한 행을 표시하려고 할 때 문제가 발생하면 Fortify가 FPR로 스캔하여 결과를 렌더링 할 때 구문 분석 오류가 발생했을 수 있습니다. 시도해 볼 수있는 한 가지는 다른 빌드 ID로 응용 프로그램을 다시 스캔하고 새 FPR을 생성하는 것입니다. 그 너머, 나는 모른다. 죄송합니다. 번역/스캔 중에 오류나 경고가 있는지 로그 파일을 검사하는 것이 좋습니다.

코드 샘플을보고 난 후에 Fortify가 매개 변수 req을 훼손하고 첨부 파일로 파일을 추가하려고 할 때 발생하는 작업에 플래그를 지정하고 있다고 생각합니다. 대부분의 싱크대는 다음 위치에 있습니다. helper.addAttachment(attachMnt.getFileName(), dSource);

첨부 파일을 디스크에 저장하기 전에 파일 이름의 유효성을 검사하고 싶습니다.