我在下面几行收到“经常被误用:文件上传”。 谁能提出修复建议。
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");
}
}
JSP 文件:
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td class="label" width="1%"> </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>
任何人都可以建议修复/解决方案吗
您的后端代码是否验证文件的扩展名?
如果您的后端代码必须检查并验证文件的扩展名,那么您可以毫无问题地进行扫描。
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">
这不应该是一个错误。
谨防恶意黑客攻击;通过高服务器负载和窃取磁盘资源来拒绝服务。尤其是机器人可以发送数百个巨大的垃圾文件。表单的 max-length 属性不够。
后台重复浏览器限制:
public void setAttachedFile(FormFile formFile) {
if (formFile.getFileSize() > 255) {
throw new IllegalArgumentException("File too large");
}
...
}
(不确定哪种例外是足够的。
但首先创建自己的攻击,以测试实际行为。
要限制上传,限制上传数量并放慢速度, 是一个超出简单答案范围的技术问题。