gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:51:20 24 4
gpt4 key购买 nike

MSDN 指出,当使用 ASP.NET ( v.2.0 ) Fileupload 控件或底层 HttpPostedFile 上传文件时,“文件将以 MIME multipart/form-data 格式上传。默认情况下,所有请求,包括表单字段和上传的文件,大于 256 KB 的数据会缓冲到磁盘,而不是保存在服务器内存中。” MSDN Link

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

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

也许我误解了一些东西,但任何建议/见解/帮助将不胜感激,谢谢。

最佳答案

好的,我们已经找到了上述问题的一些答案,因此将它们贴在这里,以防对其他人有帮助。

默认情况下(在 machine.config 中)文件上传/请求的设置一般为

请求的最大大小为 4mb,在请求缓冲到磁盘之前,内存中存储 256 字节。这些设置可以在 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 文件都被删除。

因此,从这里看来,缓冲的敏感数据并不是一个大问题,因为缓冲的文件不会长时间停留。

关于ASP.NET FileUpload 控件 - 缓冲到磁盘时的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/593086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com