ASP.NET FileUpload Control – 缓冲到磁盘时的安全问题
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字节后开始在磁盘上缓冲.该文件被缓冲到
在此路径中,将使用[unique_name] _post.tmp创建一个文件,该文件在请求期间存在,但由于请求具有锁定权限而无法访问. 我尝试以几种方式中断请求(停止IIS,终止进程,上传时关闭页面),并且在所有情况下都删除了tmp文件. 因此,由于缓冲文件不会长时间挂起,因此缓冲的敏感数据似乎不是很大的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何让ASP.NET MVC为EF中的外键生成字段
- asp.net-mvc – 用数据测试ASP.NET MVC的单元
- asp.net-mvc – 带负载均衡器的SignalR v2
- OWIN上的CORS和访问/令牌导致“Access-Control-Allow-Origi
- ASP.Net Core 2.0 Webapi设置了log4net
- asp.net-mvc-3 – ASP.NET MVC 3编辑器模板中的IEnumerable
- ASP.NET页面上的多个表单
- asp.net-mvc-routing – ASP.NET Core 1.0中的属性路由
- asp.net core EF code first
- asp.net打印错误日志