当前位置:  开发笔记 > 后端 > 正文

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

如何解决《ASP.NETFileUploadControl-缓冲到磁盘时的安全问题》经验,为你挑选了1个好方法。

MSDN声明当使用ASP.NET(v.2.0)Fileupload控件或基础HttpPostedFile 上载文件时"文件以MIME multipart/form-data格式上传.默认情况下,所有请求,包括表单字段和上传大于256 KB的文件缓冲到磁盘,而不是保存在服务器内存中." MSDN链接

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

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

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



1> 小智..:

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

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

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


上面的示例将允许请求大小高达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文件.

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

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有