Evitar el abuso de la API de OTP

Si los scripts golpean en bucle el envío de OTP, los usuarios reciben códigos no solicitados en masa, el saldo se consume rápido y la reputación del canal puede bajar. EngageLab OTP puede limitar la frecuencia y el volumen en el envío, pero no puede detener un endpoint no autenticado «Obtener código de verificación» en su aplicación.

Este artículo explica cómo combinar las capacidades de la plataforma con las protecciones del negocio para reducir el abuso de la API.

Arquitectura correcta

La API de EngageLab OTP solo debe llamarse desde su servidor. No la llame directamente desde el navegador, una app cliente o un miniprograma.

Usuario → Su frontend (inicio de sesión / registro / restablecer contraseña) → Su backend (comprobación de sesión, CAPTCHA, límites de negocio) → API de EngageLab OTP (con API Key y end_user_ip)
              
              Usuario → Su frontend (inicio de sesión / registro / restablecer contraseña)
     → Su backend (comprobación de sesión, CAPTCHA, límites de negocio)
     → API de EngageLab OTP (con API Key y end_user_ip)

            
Este bloque de código se muestra en una ventana flotante
  • Guarde dev_key y dev_secret solo en el servidor. No los ponga en el código frontend, paquetes de la app ni repositorios públicos.
  • El frontend solo debe llamar a su propia API «Obtener código de verificación». No se conecte directamente a https://otp.api.engagelab.cc.
  • En producción, configure una lista blanca de IP de quien llama. Consulte API Key.

No mezcle los dos tipos de IP

Ajuste / parámetro Qué indicar Qué bloquea
Lista blanca de IP de API Key La IP de salida de su servidor IP desconocidas que llaman a la API OTP con una Key
end_user_ip en la solicitud de envío La IP del usuario final La misma IP de usuario que pide códigos repetidamente en poco tiempo

Tras activar el límite «por dirección IP» en el Centro de seguridad, debe enviar end_user_ip en la solicitud de Envío de OTP para que el límite se aplique. Envíe la IP pública del dispositivo del usuario, no la de su servidor.

Protecciones en la plataforma

Complete esta configuración en la consola OTP para limitar el daño si se abusa del envío:

Qué hacer Dónde Finalidad
Definir lista blanca de IP y vigencia de la API Key, y poder deshabilitarla en cualquier momento API Key Restringir quién puede llamar a la API; deshabilitarla de inmediato si se filtra
Activar límites de frecuencia para el mismo número y la misma IP Centro de seguridad Bloquear envíos repetidos a un número o desde una IP
Enviar end_user_ip en la solicitud Envío de OTP Hacer efectivo el límite por IP
Definir valores de alerta y de cuota diarios / mensuales Centro de seguridad Alertar o pausar automáticamente si el volumen es anómalo
Definir lista blanca o negra por país / región Centro de seguridad Evitar envíos fuera de las regiones de negocio
Pausar el canal SMS con un clic en una emergencia Centro de seguridad Detener pérdidas con rapidez mientras ocurre el abuso

Para recibir notificaciones cuando se alcance una alerta o una cuota, configure primero el evento de callback en Webhook.

Protecciones en el negocio

Los límites de la plataforma no sustituyen la protección de su propia API «Obtener código de verificación». Complete estas comprobaciones antes de llamar a EngageLab:

  • Ejecute una verificación humana (CAPTCHA de imagen, Turnstile o reCAPTCHA) antes de enviar el código y valide el resultado en el servidor.
  • Defina un intervalo de reenvío para el mismo número (por ejemplo 60 segundos) y muestre una cuenta atrás en el frontend.
  • Limite las solicitudes por cuenta, dispositivo e IP por minuto, hora y día natural. Cuente también las solicitudes fallidas.
  • «Obtener código de verificación» debe incluir una sesión iniciada o, si no hay inicio de sesión, una sesión válida. No exponga un endpoint de envío público sin contexto.
  • Limite los intentos del mismo código e invalídelo en cuanto la verificación sea correcta. EngageLab OTP no permite volver a verificar un código ya verificado.

Tratar los códigos de error como señales de abuso

Envío de OTP puede devolver estos errores en la validación previa al envío. Cuando ocurran, ralentice los reintentos y compruebe si hay tráfico concentrado:

Código de error Código HTTP Significado
3004 400 Se superó el límite de frecuencia para la misma plantilla y el mismo destinatario; la ventana sigue la configuración de la plantilla
6001 429 Se superó la frecuencia de envío del mismo número; la ventana puede ser minuto, hora o día natural
6002 429 Se superó la frecuencia de envío de la misma IP de usuario final; solo se comprueba si se envía end_user_ip
6003 429 El volumen diario o mensual global de la aplicación alcanzó el tope
6007 403 El envío de códigos SMS está en pausa, para todos los países / regiones o para el actual

No reintente de inmediato en bucle al recibir HTTP 429. Si continúa, compruebe primero en el Centro de seguridad si hay una cuota de volumen o una parada de emergencia y luego contacte con el soporte.

Qué hacer si se filtra un secreto

  1. En la consola OTP, deshabilite o rote la API Key.
  2. En el Centro de seguridad, use la parada de emergencia para pausar el envío SMS.
  3. Revise envíos anómalos en Historial y en los callbacks.
  4. Restrinja la lista blanca de IP de la API Key y compruebe si las cuotas diarias / mensuales son razonables.
  5. Reanude el envío solo cuando el riesgo haya desaparecido.

Lista de comprobación antes de producción

  • La API solo se llama desde el servidor. dev_secret no está en el frontend, la app ni un repositorio público.
  • La API Key de producción tiene lista blanca de IP de salida del servidor.
  • Los límites de frecuencia por número están activos en el Centro de seguridad; las solicitudes de envío incluyen end_user_ip si necesita límites por IP.
  • Hay cuotas diarias / mensuales y callbacks relacionados con el volumen.
  • La API «Obtener código de verificación» ejecuta CAPTCHA y límites de negocio antes de llamar a EngageLab.
  • El orden de respuesta ante abuso está claro: deshabilitar la Key → parada de emergencia → revisar los registros de envío.
Icon Solid Transparent White Qiyu
Contacto