Rate Limiting | HTTP, SignalR | CSharp
- Rate Limiting | HTTP, SignalR | CSharp
O que é Rate Limiting
Rate Limiting é uma técnica usada para controlar quantas ações um cliente pode realizar em um determinado intervalo de tempo.
Objetivos principais:
- Evitar abuso de APIs
- Prevenir ataques de DoS
- Proteger recursos do servidor
- Garantir qualidade de serviço (QoS)
Rate Limiting nativo do ASP.NET Core
A partir do .NET 7, o ASP.NET Core possui suporte nativo a Rate Limiting baseado em middleware.
Componentes principais:
AddRateLimiterUseRateLimiterEnableRateLimiting- Políticas (policies)
📌 Importante: Esse sistema funciona exclusivamente para requisições HTTP.
Tipos de Rate Limiting (HTTP)
Fixed Window
Permite N requisições por janela fixa de tempo.
📌 Exemplo: 5 requisições a cada 10 segundos.
options.AddFixedWindowLimiter("fixed", opt =>
{
opt.PermitLimit = 5;
opt.Window = TimeSpan.FromSeconds(10);
});
✔️ Simples
❌ Pode causar “picos” no início da janela