当前位置 : 主页 > 网络编程 > ASP >

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

来源:互联网 收集:自由互联 发布时间:2021-06-24
MSDN声明当使用ASP.NET(v.2.0)Fileupload控件或基础HttpPostedFile上载文件时“文件以MIME multipart / form-data格式上传.默认情况下,所有请求,包括表单字段和上传大于256 KB的文件缓冲到磁盘,而不是保
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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ [APP_NAME] \ [SOME_HEX_NAME_DIR] \ [SOME_HEX_NAME_DIR] \uploads\

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

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

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

网友评论