Cloudflare Security
Custom Rules Rate Limiting IP Access Expressions

Rate Limiting

Rate Limiting controla a quantidade de requisicoes permitidas em um periodo de tempo, protegendo contra ataques de forca bruta e abuso de API.


Proteger Login

Limitar tentativas de login

Expression:

(http.request.uri.path eq "/api/auth/login" or http.request.uri.path eq "/login") and (http.request.method eq "POST")

Configuração:

Por que funciona:


Rate limit progressivo

Crie multiplas regras com penalidades crescentes:

Regra 1 - Warning (Log)

(http.request.uri.path eq "/login") and (http.request.method eq "POST")

Regra 2 - Challenge

(http.request.uri.path eq "/login") and (http.request.method eq "POST")

Regra 3 - Block

(http.request.uri.path eq "/login") and (http.request.method eq "POST")

Proteger APIs

Limite geral para API

Expression:

(http.request.uri.path starts_with "/api/")

Configuração:


Limite por endpoint especifico

Expression:

(http.request.uri.path eq "/api/expensive-operation")

Configuração:


Limite para usuarios autenticados vs anonimos

Regra 1 - Anonimos (mais restritivo)

(http.request.uri.path starts_with "/api/") and not (http.request.headers["authorization"][0] ne "")

Regra 2 - Autenticados (mais permissivo)

(http.request.uri.path starts_with "/api/") and (http.request.headers["authorization"][0] ne "")

Proteger contra Credential Stuffing

Detectar padrao de ataque

Expression:

(http.request.uri.path eq "/login") and (http.request.method eq "POST")

Configuração:

Logica: Nenhum humano digita credenciais 3 vezes em 10 segundos.


Proteger Forms

Limitar submissao de formularios

Expression:

(http.request.uri.path eq "/contact" or http.request.uri.path eq "/newsletter") and (http.request.method eq "POST")

Configuração:


Counting Characteristics

O Cloudflare permite contar requisicoes por diferentes criterios:

Caracteristica Uso
IP Padrao, bloqueia por endereco IP
IP + URI Path Diferente limite por endpoint
Headers Útil para APIs com API keys
Cookie Tracking por sessao
Query String Limite por parametro

Resposta Personalizada

Você pode configurar uma resposta customizada quando o rate limit e atingido:

{
  "error": "rate_limit_exceeded",
  "message": "Muitas requisicoes. Tente novamente em alguns minutos.",
  "retry_after": 60
}

Response Code: 429 (Too Many Requests)


Monitoramento

Apos configurar rate limiting:

  1. Acesse Security > Events no dashboard
  2. Filtre por “Rate Limiting”
  3. Analise padroes de trafego bloqueado
  4. Ajuste thresholds conforme necessario

Dicas


Voltar para Cloudflare Ver Snippets