Azure WebApp 是否自动进行速率限制/DOS 保护?

问题描述 投票:0回答:2

我正在构建一项服务,允许在桌面应用程序中输入激活密钥,然后调用 Web 服务来检查密钥并返回许可证。此调用不需要授权。

Web 应用程序作为 Azure“应用服务”运行。我担心有人会试图“猜测”激活密钥并减慢我的服务速度。 (我不怕他们能够猜对,他们足够长了)。

Azure WebApps 是否有某种自动速率限制或 DOS 保护,还是我需要自己配置/编码?

如果我必须自己做,你能给我指出正确的方向吗?

azure azure-web-app-service ddos rate-limiting
2个回答
0
投票

2023 年更新: Azure 默认情况下似乎没有进行任何类型的速率限制。

但是,ASP.net Core 现在具有我正在使用的内置速率限制功能。相应的包是 Microsoft.AspNetCore.RateLimiting。 Microsoft 的文档对此 [1][2] 非常好,但我将提供我如何使用它(C#):

在设置代码中:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRateLimiter(_ => _
    .AddFixedWindowLimiter(policyName: "MyRedeemLimitPolicy", options =>
    {
        options.PermitLimit = 3;
        options.Window = TimeSpan.FromMinutes(15);
        options.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
        options.QueueLimit = 2;
    }));

var app = builder.Build();

app.UseRouting(); // Must be before app.UseRateLimiter()!

app.UseRateLimiter();

在控制器中:

    [AllowAnonymous]
    [HttpPost]
    [EnableRateLimiting("MyRedeemLimitPolicy")]
    public IActionResult RedeemKey([FromBody] RedeemData data)
    { ... }

[1] https://learn.microsoft.com/en-us/aspnet/core/performance/rate-limit

[2] https://devblogs.microsoft.com/dotnet/announcing-rate-limiting-for-dotnet/


-1
投票

据我所知,我们可以在网络应用程序中使用动态IP限制

IIS 的动态 IP 限制扩展为 IT 专业人员和主机托管商提供了一个可配置模块,该模块可暂时阻止遵循以下模式的 HTTP 客户端的 Internet 协议 (IP) 地址,从而帮助减轻或阻止拒绝服务攻击或暴力破解密码:可能有助于此类攻击之一。可以配置此模块,以便可以在 Web 服务器或网站级别完成分析和阻止。

关于如何配置此功能。我们可以远程连接到 azure web 应用程序 IIS 并进行设置。

关于如何远程连接Web App IIS,可以参考这篇文章

更多详情,你也可以参考这个博客

© www.soinside.com 2019 - 2024. All rights reserved.