Seu Rate Limiter Não é um Controle de Segurança
Um bot extraiu todos os dados de um passaporte da minha API em minutos.
Meu rate limiter não o impediu.
O limite era de 3.000 chamadas por mês. Uma varredura completa de um passaporte exige apenas 195 chamadas. O bot permaneceu abaixo do meu limite e roubou tudo.
O rate limiting protege os custos da sua infraestrutura. Ele não protege os seus dados.
Se você misturar essas duas ideias, você vazará seus dados.
Rate limiters fazem apenas uma pergunta: Este cliente está me custando muito dinheiro agora?
Scrapers permanecem abaixo dessa linha de propósito. Meu scraper rodava a 25 requisições por minuto. Isso é uma carga minúscula. Seriam necessárias apenas 40.000 chamadas para copiar todo o meu conjunto de dados. Se um hacker usar muitas contas gratuitas, nenhum limite de volume o pegará.
Pare de olhar para o volume. Olhe para a identidade, a cobertura e o padrão.
Eu cometi dois erros. Primeiro, não registrei o IP de origem. Um hacker poderia simplesmente se cadastrar novamente de graça.
Corrija seus logs primeiro. Adicione colunas de IP e país ao seu banco de dados. Use o IP real do cliente vindo do Cloudflare em vez do endereço remoto. Isso permite que você bloqueie atacantes na camada de rede.
Segundo, mude seus limites.
Não limite apenas as requisições por mês. Limite quantos destinos diferentes um passaporte pode consultar por dia. Um usuário real consulta alguns destinos. Um scraper tenta consultar todos eles.
Uma varredura de dados tem uma assinatura específica:
- É densa.
- É sequencial.
- Cobre tudo para uma única origem.
Você pode detectar esse padrão observando uma janela deslizante (sliding window) de atividade. Se um passaporte atingir muitos destinos em um curto período, sinalize-o. Reduza a taxa de requisições dessa chave ou bloqueie-a imediatamente.
Agora você reage ao comportamento em vez de apenas contar números.
Divida sua estratégia em duas tarefas:
- Rate Limiter: Proteja seu dinheiro. Use limites de volume por chave.
- Defesa de Extração: Proteja seus dados. Use identidade, cobertura e cadência.
Se você tem apenas um rate limiter, você tem uma proteção de faturamento. Você não tem segurança.
Fonte: https://dev.to/mathis_higuinen_6db9b244c/your-rate-limiter-is-not-a-security-control-4b3f
