Bloqueo IALista de espera

Integración en 5 minutos

Un script en el navegador, un atributo en el formulario y una línea en tu servidor. Empieza en modo observación: tu web sigue igual y el panel te dice qué habría retenido.

1. Da de alta el sitio

En el panel creas el sitio y obtienes su identificador y su secreto. El secreto se muestra una sola vez: guárdalo en una variable de entorno de tu servidor (BIA_SECRET) y nunca en el código del navegador.

2. Añade el script

En las páginas que quieras medir, lo antes posible. Pesa 1,9 KB comprimido.

index.html
<script src="https://COLLECTOR/v1/k.js" data-site="ID_DEL_SITIO" defer></script>

3. Marca el formulario

El script añade al envío un token firmado de un solo uso. Si tu web usa fetch o es una SPA, envía el token en la cabecera x-bia-token.

consulta.html
<form method="post" action="/consulta" data-bloqueo>
  <input name="q" data-bloqueo-field>
  <button>Buscar</button>
</form>

4. Verifica en tu servidor

El middleware comprueba la firma, la caducidad y que el token no se haya usado antes. No llama a nuestro servidor al verificar. Hay adaptadores para Express, Fastify y Next.js.

server.js
import { createBloqueo } from '@bloqueo/node';

const bloqueo = createBloqueo({
  siteId: process.env.BIA_SITE_ID,
  secret: process.env.BIA_SECRET,
});

app.post('/consulta', express.urlencoded({ extended: false }), expressMiddleware(bloqueo), handler);

5. Empieza en observación

El modo del sitio se cambia en el panel y viaja con el token. En observación todo pasa y el resultado indica si se habría retenido. En bloqueo se retiene con un 403, o con la respuesta que definas tú.

Sin token válido (sin JavaScript, o el servicio caído) la petición pasa por defecto, para no dejar fuera a las personas. Puedes cambiarlo, pero mídelo antes en observación con tráfico real.

Opcional: escudo para webs estáticas

Para frenar las descargas directas, que no ejecutan el script, el escudo se pone en el edge (Vercel, Next, Cloudflare Workers o Express) y también arranca en observación.

middleware.ts
import { createShield } from '@bloqueo/node/shield';

const shield = createShield({ mode: 'observe' });
export default async (request) =>
  (await shield.handle(request)) ?? undefined;

Antes de pasar a bloqueo

  • Deja la observación el tiempo suficiente para ver tráfico real, también el de tus personas.
  • Revisa en el panel qué se habría retenido y si hay algo que no esperabas.
  • Lee los límites: no es una atestación y un agente adaptado podría evadirlo.