经常被误用:Java 和 JSP 文件中的文件上传

问题描述 投票:0回答:2

我在下面几行收到“经常被误用:文件上传”。 谁能提出修复建议。

  1. JAVA文件:

    **public void setAttachedFile(FormFile formFile) { // File upload error at this line**
           attachedFile = formFile;
    
           if (attachedFile != null) {
                formData.put("attachedFile", attachedFile);
           } else {
                  formData.remove("attachedFile");
            }
    
          }
    
  2. JSP 文件:

    <table width="100%" border="0" cellspacing="0" cellpadding="3">
                <tr>
                  <td class="label" width="1%">&nbsp;</td>
                  <td class="label" width="22%">Select File Name</td>
                     <td class="field" width="26%">
                 **<input class="textfield width450" type="file" name="File_Name" maxlength="255" value=""> // Getting                  the fortify here**
                     </td>               
                   </tr>  
               </table>
    

任何人都可以建议修复/解决方案吗

java jsp file-upload fortify
2个回答
0
投票

您的后端代码是否验证文件的扩展名?

如果您的后端代码必须检查并验证文件的扩展名,那么您可以毫无问题地进行扫描。

C# 中的示例如下:

string extension = Path.GetExtension(file.FileName);
            
if (extension.ToLower().Trim() != ".xlsx" && extension.ToLower().Trim() != ".xls")
{
throw new Exception("Check the extension!");
}

和 JSP 文件:

<input class="textfield width450" 
type="file" name="File_Name" 
maxlength="255" value="" 
accept=".xlsx,.xls">

0
投票

这不应该是一个错误。

谨防恶意黑客攻击;通过高服务器负载和窃取磁盘资源来拒绝服务。尤其是机器人可以发送数百个巨大的垃圾文件。表单的 max-length 属性不够。

后台重复浏览器限制:

public void setAttachedFile(FormFile formFile) {
   if (formFile.getFileSize() > 255) {
       throw new IllegalArgumentException("File too large");
   }
   ...
}

(不确定哪种例外是足够的。

但首先创建自己的攻击,以测试实际行为。

要限制上传,限制上传数量并放慢速度, 是一个超出简单答案范围的技术问题。

© www.soinside.com 2019 - 2024. All rights reserved.