Shield

O Blipit Shield deteta força bruta, credential stuffing, scanners e tentativas de injeção no servidor e, quando decide, bloqueia-os dentro da sua app. Os SDKs de Node e Next.js e o módulo Odoo apenas obtêm a lista decidida pelo Blipit e aplicam-na. O Shield fica desligado até o ativar num projeto.

1Node.js

Adicione o middleware antes das suas rotas, com a chave secreta. Atrás de um proxy ou balanceador de carga, defina trustProxy com o número de proxies à frente da app. actor devolve a conta em que alguém está a iniciar sessão, para que as contas bloqueadas também sejam recusadas. Fastify: app.addHook("onRequest", shield.fastify).

js
import * as Blipit from "@blipit/node";
import express from "express";

const app = express();
app.use(express.json());
app.use(Blipit.shield({ trustProxy: 1, actor: (req) => req.body?.email }));

2Next.js

Envolva o seu middleware.ts. Corre no runtime Edge e lê BLIPIT_SECRET_KEY. Para manter o seu próprio middleware, passe-o: withBlipitShield(yourMiddleware).

ts
import { withBlipitShield } from "@blipit/nextjs/shield";

export const middleware = withBlipitShield();

3Odoo

Nada a adicionar. A partir da versão 1.18.14 do módulo, o Odoo aplica a mesma lista em todas as páginas e em todos os inícios de sessão quando o Shield está ligado.

4Como se comporta

  • IPs e contas bloqueados recebem 403 com uma mensagem curta em texto; os limites de início de sessão respondem 429 com Retry-After.
  • A lista é atualizada a cada 30 segundos em segundo plano, por isso um pedido nunca espera pelo Blipit. Se o Blipit não estiver acessível, a última lista mantém-se em vigor.
  • Em modo de teste nada é bloqueado; o Blipit conta o que teria sido bloqueado.
  • Uma vez por minuto a sua app envia quantas vezes cada bloqueio atuou e, enquanto o Shield está ligado, uma pequena amostra de pedidos: caminho, método, estado, IP, user agent e a query string sem segredos. Cabeçalhos, cookies, palavras-passe e corpos de pedidos nunca são enviados.

Travou? Envie um e-mail para support@blipit.io. As chaves e o id de cada projeto ficam em Chaves de API no app.blipit.io.