【发布时间】:2019-11-14 00:13:41
【问题描述】:
我正在寻找有关 ASP.NET Core Web 应用程序的拒绝服务 (DoS) 保护/缓解的最佳实践建议/指导(可能来自 Microsoft?)。
目前我发现的主要两个选项是:
- AspNetCoreRateLimit(ASP.NET Core 中间件)
- Dynamic IP Restrictions(IIS 模块 - 假设站点托管在 IIS 中)。
在选择其中一个选项而不是另一个选项时,似乎需要考虑许多优点和缺点,因此最好了解这些选项是什么,以及实际上是否打算将 AspNetCoreRateLimit 与动态 IP 限制一起使用与否。
另请注意,AspNetCoreRateLimit 不是 Microsoft 的 ASP.NET Core 版本的一部分,因此我很想知道 Microsoft 的官方指南是什么。
【问题讨论】:
-
您是否在 ASP.NET 核心应用程序前运行反向代理?像 HAProxy 还是 Nginx?如果你不是,你应该考虑它并且应该考虑通过允许你的反向代理在它们到达你的应用程序服务器之前处理这些请求来进行深度防御——原因是你仍然可以通过增加应用程序的 CPU 来挤出请求服务器,所以要求应用服务器处理DOS攻击是不可行的。为了让我们回答这个问题,我们需要知道您的应用程序是“云原生”还是经过架构设计,以便您控制整个堆栈。
-
简单明了:这不是 ASP.NET Core 的事情。它需要在网络层面进行处理:防火墙、WAF、入口控制器、代理服务器等。如果它到达 ASP.NET Core 应用程序,已经为时已晚。
标签: asp.net-core denial-of-service