Asp.net 如果我不限制文件上传到Web服务器的最大请求长度,我会打开哪些安全漏洞?

Asp.net 如果我不限制文件上传到Web服务器的最大请求长度,我会打开哪些安全漏洞?,asp.net,asp.net-mvc,security,Asp.net,Asp.net Mvc,Security,我正在为我的.NETMVC5站点开发相册功能,最近遇到了一个问题 我不想再遇到这个错误,我很想将它设置为1GB这样的大值。但这似乎是个坏主意。我有3个问题: 如果我将文件上载最大长度设置为1 GB,会打开哪些安全漏洞 有人建议我只在上传到特定目录时增加文件上传长度。这真的更安全吗 在.net中,如果我限制POST、GET或所有请求的长度,则配置文件不是特定的。我假设此限制适用于所有请求 你在有限的硬件上运行你的软件,但你想为你的用户提供无限的资源?您可能没有足够的ram或磁盘空间。更大的任务将花

我正在为我的.NETMVC5站点开发相册功能,最近遇到了一个问题

我不想再遇到这个错误,我很想将它设置为1GB这样的大值。但这似乎是个坏主意。我有3个问题:

  • 如果我将文件上载最大长度设置为1 GB,会打开哪些安全漏洞

  • 有人建议我只在上传到特定目录时增加文件上传长度。这真的更安全吗

  • 在.net中,如果我限制POST、GET或所有请求的长度,则配置文件不是特定的。我假设此限制适用于所有请求


  • 你在有限的硬件上运行你的软件,但你想为你的用户提供无限的资源?您可能没有足够的ram或磁盘空间。更大的任务将花费更多的时间,因此您的线程将不再可用。这可能会影响反应能力。将更容易对应用程序进行DDOS攻击。显示如此大的照片也会影响响应能力,使用客户的ram,使浏览器崩溃,这样他们可能再也不会回到您的网站。。。可能还有很多我现在想不起来的

    如果我将文件上载最大长度设置为1 GB,会打开哪些安全漏洞

    消耗资源的DoS攻击更容易成功。1GB可能很高,但如果您需要接受如此大的文件,这可能是一个可接受的风险。此设置取决于服务器拥有的资源(特别是内存和磁盘大小)以及应用程序的要求

    是的,恶意用户可以发布许多小文件,而不是一个大文件,但这些单独的请求将与发送到服务器的合法请求一起排队。很可能服务器在处理合法的恶意文件之前就已经完成了恶意文件的处理。例如,一个上载1GB的恶意用户可能会在处理该文件时阻塞线程,而1000个1MB文件造成的负载可能会在应用程序的处理过程中分散

    另一种攻击是DDoS攻击,可以将其视为同时发生的多个DoS攻击。增加单个请求允许的最大长度可能意味着DDoS攻击会成功,而正常的DoS攻击不会成功,因为单个用户的可用带宽有限。也就是说,你让很多用户更容易发布大文件,而以前每个用户的损坏量是由单个文件大小限制的

    有人建议我只在上传到特定目录时增加文件上传长度。这真的更安全吗

    如果只有有限的一组用户可以访问允许大文件上传的页面,那么这将限制任何攻击

    这应该是可行的,因为它是

    在.net中,如果我限制POST、GET或所有请求的长度,则配置文件不是特定的。我假设此限制适用于所有请求


    是的,这适用于所有请求。如果你愿意在一篇文章中接受一个大的请求,那么在GET中不存在允许这样做的额外风险。唯一的优势是在入侵检测系统(IDS)应用程序级别,因为它可以将大型GET请求记录为可疑活动。

    有人可能会吃掉你的ram。基本假设是发布一个大文件比发布一吨小文件更容易?我承认这是传统智慧,然而,通过长时间上传攻击站点的能力似乎受到可用带宽的限制,因此,从某种意义上说,比仅仅用短请求轰炸服务器要困难得多,其中瓶颈是服务器可以处理的并发请求数量。