加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET FileUpload Control – 缓冲到磁盘时的安全问题

发布时间:2020-12-16 09:29:48 所属栏目:asp.Net 来源:网络整理
导读:MSDN声明当使用ASP.NET(v.2.0)Fileupload控件或基础HttpPostedFile上载文件时“文件以MIME multipart / form-data格式上传.默认情况下,所有请求,包括表单字段和上传大于256 KB的文件缓冲到磁盘,而不是保存在服务器内存中.“ MSDN Link 有没有人知道它被缓冲
MSDN声明当使用ASP.NET(v.2.0)Fileupload控件或基础HttpPostedFile上载文件时“文件以MIME multipart / form-data格式上传.默认情况下,所有请求,包括表单字段和上传大于256 KB的文件缓冲到磁盘,而不是保存在服务器内存中.“ MSDN Link

有没有人知道它被缓冲到磁盘的哪个位置以及何时清除/删除此缓冲区,即请求何时结束,以及在请求未正常结束的错误或意外情况下会发生什么?

我担心的是,如果应用程序能够上传敏感信息(CC数据,个人数据等),则该文件将在磁盘上缓冲,并且可能在请求结束时不会被删除.这是共享主机上的问题,即可以从应用程序外部访问此缓冲区吗?

也许我误解了一些东西,但任何建议/见解/帮助都会非常感激,谢谢.

解决方法

确定已经设法找到上面提出的问题的一些答案,所以只是在这里坚持它,以防它帮助其他人.

默认情况下(在machine.config中)文件上传/请求的设置通常是

在请求缓冲到磁盘之前,4mb作为请求的最大大小和256bytes存储在内存中.可以在httpRuntime部分的web.config中覆盖这些设置.

<httpRuntime maxRequestLength="8192" requestLengthDiskThreshold="512" />

上面的示例将允许请求大小高达8mb,并将在512字节后开始在磁盘上缓冲.该文件被缓冲到

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files [APP_NAME] [SOME_HEX_NAME_DIR] [SOME_HEX_NAME_DIR] uploads

在此路径中,将使用[unique_name] _post.tmp创建一个文件,该文件在请求期间存在,但由于请求具有锁定权限而无法访问.

我尝试以几种方式中断请求(停止IIS,终止进程,上传时关闭页面),并且在所有情况下都删除了tmp文件.

因此,由于缓冲文件不会长时间挂起,因此缓冲的敏感数据似乎不是很大的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读