2016-07-22 1 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

あなただけ

fileName.matches(regex) 

を使用すると、あまりにも簡単です

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

に敏感な情報をフィルタリングするための方法を使用する必要があります。