Rate Limit
O Limite de Taxa (Rate Limit) é uma estratégia para controlar a quantidade de requisições que um cliente (identificado por IP, Token ou API Key) pode fazer em um determinado período de tempo.
Por que é essencial?
- Prevenção de Brute Force: Impede que um atacante tente milhares de senhas por segundo.
- Estabilidade (Anti-DoS): Evita que um único usuário (ou um script mal escrito) sobrecarregue o servidor com requisições excessivas.
- Controle de Custos: Protege APIs que possuem custos por requisição (ex: envio de SMS, APIs de IA).
Como fazer vs Como não fazer
✅ Como fazer
- Implemente o Rate Limit no nível da infraestrutura (API Gateway, Nginx) ou utilizando middlewares no Backend.
- Utilize limites diferentes para rotas diferentes (ex: o login deve ser muito mais restrito que uma listagem de itens).
- Retorne o Status Code 429 Too Many Requests quando o limite for atingido.
- Informe ao cliente quando ele poderá tentar novamente através do cabeçalho
Retry-After.
❌ Como não fazer
- Não tente implementar Rate Limit apenas no Frontend (desabilitando botões); o atacante ignorará sua interface.
- Não use limites globais iguais para todos os IPs sem considerar que muitos usuários legítimos podem vir de um mesmo IP corporativo (use tokens de sessão para um controle mais granular quando possível).
- Não esqueça de monitorar e alertar quando um IP ou usuário atingir o limite de forma recorrente, pois isso indica uma tentativa de ataque.