如果我不限制文件上传到我的网络服务器的最大请求长度,我会打开什么安全漏洞?
What security holes do I open up if I do not limit the max request length for file upload to my webserver?
我正在为我的 .net MVC 5 网站开发相册功能,我最近 运行 进入了 an issue where by default .net limits file uploads to 4 MB。
不想再遇到这个错误,我很想将它设置为 1 GB 这样大的值。但这似乎是个坏主意。我有 3 个问题:
如果我将文件上传最大长度设置为 1 GB,会打开哪些安全漏洞?
有人建议我只为上传到特定目录增加文件上传长度。这实际上更安全吗?
在 .net 中,如果我限制 POST、GET 或所有请求的长度,则配置文件不是特定的。我假设此限制适用于所有请求?
您 运行 您的软件在有限的硬件上运行,但您想为您的用户提供无限的资源?您可能没有足够的 ram 或磁盘 space。更大的任务将花费更多时间,因此您的线程将不可用的时间更长。这可能会影响响应能力。 DDOS 应用程序会更容易。显示如此大的照片也会影响响应速度,使用您的客户 ram,使他们的浏览器崩溃,这样他们可能永远不会再回到您的网站......可能还有更多我现在想不到的
What security holes do I open up if I set the file upload max length to 1 GB?
消耗资源的 DoS 攻击更容易得逞。 1GB 可能很高,但如果您需要接受那么大的文件,这对您来说可能是可以接受的风险。此设置取决于您的服务器拥有的资源(特别是内存和磁盘大小)以及您的应用程序的要求。
是的,恶意用户可以 post 许多小文件而不是一个大文件 - 但这些单独的请求将与对您服务器的合法请求一起排队。有可能服务器会在处理完合法服务器之前完成对恶意服务器的处理。例如,上传 1GB 的恶意用户可能会在处理该文件时阻塞线程,而由 1000 个 1 MB 文件引起的负载可以分散在应用程序的处理过程中。
另一种攻击是 DDoS 攻击,可以认为是同时进行多次 DoS 攻击。增加单个请求允许的最大长度可能意味着 DDoS 攻击会成功,而普通的 DoS 攻击不会成功,因为单个用户只有有限的可用带宽。也就是说,您让许多用户更容易 post 大文件,而以前每个用户的损坏量受单个文件大小的限制。
Someone recommended that I increase the file upload length only for uploads to a specific directory. Is this actually any more secure?
如果只有一组有限的用户可以访问允许大文件上传的页面,那么这将限制任何攻击。
这应该有效,因为 AuthorizeRequest
is called before ProcessRequest
where the HttpRuntime
settings are applied。
In .net, the config files are not specific if I am limiting the length of POSTs, GETs, or all requests. I assume that this restriction applies to all requests?
是的,这适用于所有请求。如果您愿意在 POST 上接受较大的请求大小,那么在 GET 上允许这样做就没有额外的风险。唯一的优势在于入侵检测系统 (IDS) 应用程序级别,因为它能够将大型 GET 请求记录为可疑 activity.
我正在为我的 .net MVC 5 网站开发相册功能,我最近 运行 进入了 an issue where by default .net limits file uploads to 4 MB。
不想再遇到这个错误,我很想将它设置为 1 GB 这样大的值。但这似乎是个坏主意。我有 3 个问题:
如果我将文件上传最大长度设置为 1 GB,会打开哪些安全漏洞?
有人建议我只为上传到特定目录增加文件上传长度。这实际上更安全吗?
在 .net 中,如果我限制 POST、GET 或所有请求的长度,则配置文件不是特定的。我假设此限制适用于所有请求?
您 运行 您的软件在有限的硬件上运行,但您想为您的用户提供无限的资源?您可能没有足够的 ram 或磁盘 space。更大的任务将花费更多时间,因此您的线程将不可用的时间更长。这可能会影响响应能力。 DDOS 应用程序会更容易。显示如此大的照片也会影响响应速度,使用您的客户 ram,使他们的浏览器崩溃,这样他们可能永远不会再回到您的网站......可能还有更多我现在想不到的
What security holes do I open up if I set the file upload max length to 1 GB?
消耗资源的 DoS 攻击更容易得逞。 1GB 可能很高,但如果您需要接受那么大的文件,这对您来说可能是可以接受的风险。此设置取决于您的服务器拥有的资源(特别是内存和磁盘大小)以及您的应用程序的要求。
是的,恶意用户可以 post 许多小文件而不是一个大文件 - 但这些单独的请求将与对您服务器的合法请求一起排队。有可能服务器会在处理完合法服务器之前完成对恶意服务器的处理。例如,上传 1GB 的恶意用户可能会在处理该文件时阻塞线程,而由 1000 个 1 MB 文件引起的负载可以分散在应用程序的处理过程中。
另一种攻击是 DDoS 攻击,可以认为是同时进行多次 DoS 攻击。增加单个请求允许的最大长度可能意味着 DDoS 攻击会成功,而普通的 DoS 攻击不会成功,因为单个用户只有有限的可用带宽。也就是说,您让许多用户更容易 post 大文件,而以前每个用户的损坏量受单个文件大小的限制。
Someone recommended that I increase the file upload length only for uploads to a specific directory. Is this actually any more secure?
如果只有一组有限的用户可以访问允许大文件上传的页面,那么这将限制任何攻击。
这应该有效,因为 AuthorizeRequest
is called before ProcessRequest
where the HttpRuntime
settings are applied。
In .net, the config files are not specific if I am limiting the length of POSTs, GETs, or all requests. I assume that this restriction applies to all requests?
是的,这适用于所有请求。如果您愿意在 POST 上接受较大的请求大小,那么在 GET 上允许这样做就没有额外的风险。唯一的优势在于入侵检测系统 (IDS) 应用程序级别,因为它能够将大型 GET 请求记录为可疑 activity.