【问题标题】:How ASP.NET Core prevents DDoS attack by limiting the request size?ASP.NET Core 如何通过限制请求大小来防止 DDoS 攻击?
【发布时间】:2020-07-10 12:46:32
【问题描述】:

我最近创建了一个 API,允许上传视频和音频文件,它运行良好,直到一位客户上传了一个大视频,我收到了这个错误:

未能读取申请表。超过多部分正文长度限制 134217728。

从许多帖子中可以明显看出,请求大小限制背后的理念是减少 DDoS 攻击的机会。 (如果我错了,请纠正我)。

但是,我自己上传了一个大视频,并在本地 PC 和服务器上观看了带宽。我有这个应用程序的 VPS,我可以使用任务管理器的性能选项卡,通过选择以太网并查看发送和接收图表来查看带宽。

关键是,我在上传文件时看到高流量持续了几分钟,然后我看到了那个错误。这意味着即使 ASP.NET Core 拒绝请求,服务器的资源也会被消耗。

所以,我不明白这部分。 ASP.NET Core 如何通过限制请求大小来减少 DoS 或 DDoS 攻击的机会,而实际占用带宽?如果请求的负载/正文太大,甚至不消耗带宽,则逻辑方法是从一开始就删除 multipart/form-data 内容类型的请求。

【问题讨论】:

    标签: asp.net-core-mvc ddos


    【解决方案1】:

    Dotnet 只能通过上传文件来知道文件的大小(在您的示例中消耗带宽)。

    这个问题的解决方法是set a smaller limit for the size of uploaded files

    dotnet 的工作方式是流式传输文件(一点一点地处理它)。一旦达到最大上传大小,它将返回错误。

    您是对的,这并不能阻止攻击者上传许多大文件 - dotnet 仍然需要上传/流式传输它们,直到达到最大大小。缓解此类攻击的方法是通过其他方式 - 速率限制、IP 阻塞、CDN 上的 DDoS 保护等

    【讨论】:

      猜你喜欢
      • 2019-01-04
      • 2014-08-27
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多