Detén la adivinación por fuerza bruta y el abuso automatizado de OTP.
Protege los flujos de verificación de registro, inicio de sesión y autenticación reforzada frente a la adivinación de códigos por fuerza bruta, los bucles de reenvío automatizados y el bombeo de SMS, sin añadir fricción para los usuarios legítimos. Bird Verify almacena los códigos de verificación con hash, aplica límites de intentos y plazos de caducidad por sesión, limita los envíos repetidos por destinatario y te permite bloquear los países en los que no operas antes de enviar un mensaje.
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Tu cuenta
Confirma que eres tú.
Introduce el código enviado a
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Tu cuenta
Confirma que eres tú.
Introduce el código enviado a
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Tu cuenta
Confirma que eres tú.
Introduce el código enviado a
+1 ••• ••• 4567
Blinda tus flujos de OTP sin crear limitadores de solicitudes propios.
Proteger la verificación por tu cuenta implica mantener contadores en Redis para los tiempos de espera entre reenvíos, registrar los intentos fallidos por sesión, aplicar hash a los códigos antes de escribirlos en la base de datos y filtrar el tráfico hacia países donde no operas. Con la API de Bird Verify, esas protecciones se aplican automáticamente en cada sesión de verificación. Los códigos de verificación en texto plano no aparecen en las respuestas de la API ni en los registros de la aplicación, los endpoints de comprobación aplican un número limitado de intentos y limitación de solicitudes por minuto, y la configuración del espacio de trabajo te permite ajustar los plazos de caducidad y los destinos permitidos en el inicio de sesión de dos factores y el inicio de sesión sin contraseña.
Cómo protege Bird las sesiones de verificación frente al abuso.
Protecciones predeterminadas y controles del espacio de trabajo que detienen la adivinación de códigos, las avalanchas de reenvíos y el tráfico internacional no deseado.
- 01
Genera códigos de verificación impredecibles.
Genera por defecto códigos de verificación numéricos de 6 dígitos (o de 4 a 8 dígitos por solicitud) a partir de una fuente aleatoria criptográfica en todo el espacio de códigos, para que los atacantes no puedan predecirlos a partir de marcas de tiempo ni contadores secuenciales.
- 02
Mantén los códigos en texto plano fuera de los registros y las respuestas.
Almacena los códigos de verificación como hashes HMAC-SHA256 y omite el texto plano en las respuestas de la API, las cargas de webhooks y los registros del panel, para que una filtración de registros de la aplicación o de vistas de soporte no exponga códigos activos.
- 03
Comprueba los códigos enviados en tiempo constante.
Evalúa los dígitos que envía el usuario en tiempo constante en todos los intentos activos de la sesión, para que la latencia de la respuesta no revele a los atacantes cuántos dígitos coinciden.
- 04
Bloquea la adivinación por fuerza bruta y caduca las sesiones antiguas.
Limita por defecto cada sesión a 5 intentos de comprobación y un plazo de caducidad de 10 minutos, o ajusta ambos límites en la configuración de tu espacio de trabajo. Cuando se agotan los intentos o el tiempo, la sesión se cierra y se rechazan nuevas comprobaciones, con limitación de comprobaciones por minuto como respaldo.
- 05
Limita los envíos repetidos y bloquea los países que no usas.
Aplica un tiempo de espera de 60 segundos entre reenvíos (configurable hasta una hora) y un límite móvil de 5 envíos por dirección de destinatario y hora, para que los bots no saturen el teléfono de un usuario ni agoten tu saldo. Desactiva en el panel los países en los que no operas para bloquear el bombeo de SMS hacia esos destinos antes de enviar un mensaje.
Orienta a los usuarios reales ante errores tipográficos y bloquea los bucles de fuerza bruta.
Cuando un usuario se equivoca en un dígito, la respuesta de comprobación indica a tu aplicación cuántos intentos quedan para que puedas pedirle que lo intente de nuevo. Cuando se agotan los intentos de la sesión, la verificación se cierra automáticamente y bloquea nuevos intentos hasta que se inicie una sesión nueva.
const { data, error } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: guess,
}).safe();
if (error) throw error;
// wrong code, attempts left → { success: false, reason: "incorrect_code", attempts_remaining: 2 }
// budget spent, session done → { success: false, reason: "attempts_exhausted", attempts_remaining: null }Próximamente: señales de riesgo automatizadas y límites de gasto.
Además de los controles por país y los límites de envío por destinatario ya disponibles, estamos integrando una capa antifraude directamente en el ciclo de vida de la verificación. Como funciona sobre los mismos endpoints de envío y comprobación, tu equipo podrá activar reglas de riesgo desde la configuración sin cambiar el código de la aplicación.
Señales de riesgo en las solicitudes de verificación. Envía el contexto del dispositivo, la IP y la solicitud al iniciar una verificación para bloquear los intentos de alto riesgo antes de que salga un mensaje y genere cargos del operador.
Límites de velocidad por prefijo y límites de gasto. Combina límites de envío por país y por prefijo con límites de verificación del espacio de trabajo para frenar los ataques de tráfico inflado artificialmente (AIT) dirigidos a rangos premium de operadores antes de que agoten tu presupuesto.
Decisiones basadas en el historial de entregas. Puntúa las nuevas solicitudes de verificación según el historial de intentos y conversiones que Bird Verify registra en todos los canales, y muestra los resultados bloqueados directamente en tu gestor de estados actual.
Créalo sobre la plataforma Verify
Entrega multicanal, enrutamiento alternativo y flujos de autenticación creados sobre la misma API.
Escala sin
perder el control.
Organiza equipos en espacios de trabajo, controla el acceso a la API y rastrea cambios en los registros de auditoría.
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Servicio de registro
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Servicio de registro
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Servicio de registro
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría