Backend · Segurança

Rate Limit

Limita requisições por IP, usuário ou chave com janela deslizante ou balde de fichas, armazém plugável (memória, Redis, KV) e headers RateLimit-*. Login e API protegidos contra abuso e robô.

Rate limit · Redis · Anti-abuso · 8 testes automatizados · Licença MIT · Criado por FlowCore Soluções LTDA

Como instalar

  1. Funciona onde você já roda Node 18+, Cloudflare Workers, Deno, Bun, Vercel e Netlify Functions. Zero dependência: só fetch e Web Crypto, que já vêm no runtime.
  2. Crie src/lib/rate-limit.ts Cole o código da aba Código.
  3. Use
    const limite = criarJanelaDeslizante({ limite: 5, janelaMs: 60_000 });
    const r = await limite.consumir(`login:${ip}`);
    if (!r.permitido) {
      return new Response("Muitas tentativas", { status: 429, headers: headersRateLimit(r) });
    }
  4. Rode o teste junto O arquivo de teste (aba Teste) cobre 8 cenários. Copie para src/lib/ ao lado e rode:
    npm install -D vitest
    npx vitest run src/lib

Código no GitHub · Biblioteca de códigos

Mais em Segurança