2016-07-22 3 views
0

이 코드에 대해 bu Fortify Scan을 반환하는 "Header Manipulation"문제를 해결하려고합니다. 파일 업로드가 이미 유효한지 여부는 알 수 없습니다. RegEx를 사용하여 파일 이름의 유효성을 검사하지 못했습니다. 누구든지 나를 도울 수 있습니까? HTTP 응답에서 HP Fortify의 헤더 조작 문제 [java]

b = uploadedFiles.getFilecontent().getBytes(1, 
         uploadedFiles.getFilesize().intValue()); 
       if (b != null) { 
        response.reset(); 
        String fileName = uploadedFiles.getFilename(); 
        String header = "attachment; filename=\"" + fileName + "\""; 
        String contentType = uploadedFiles.getFilecontenttype(); 
        response.setContentType(uploadedFiles.getFilecontenttype()); 
        response.addHeader("Content-Transfer-Encoding", "Binary"); 
        response.addHeader("Cache-Control", "must-revalidate, private"); 
        response.setContentLength(b.length); 
        FileCopyUtils.copy(b, response.getOutputStream()); 
        response.getOutputStream().flush(); 
        response.getOutputStream().close(); 
       } 

내가 시도하는 것 :

String fileName = uploadedFiles.getFilename(); 
String regex = "[a-zA-Z._ ]*"; 
if (b != null && fileName.matches(regex)) { 
       response.reset(); 
       // String fileName = uploadedFiles.getFilename(); 
       String header = "attachment; filename=\"" + fileName + "\""; 
       String contentType = uploadedFiles.getFilecontenttype(); 
       response.setContentType(uploadedFiles.getFilecontenttype()); 
       response.addHeader("Content-Transfer-Encoding", "Binary"); 
       response.addHeader("Cache-Control", "must-revalidate, private");    
       response.setHeader("Content-Disposition", header); 
       response.setContentLength(b.length); 
       FileCopyUtils.copy(b, response.getOutputStream()); 
       response.getOutputStream().flush(); 
       response.getOutputStream().close(); 
      } 

답변

0

당신은

response.setHeader("Content-Disposition", header) 

에 민감한 정보를 필터링하는 방법을 사용하여 그냥

fileName.matches(regex) 

이 너무 간단 사용한다.