Evitar el uso no autorizado de la API SMS
Si la API de envío SMS se llama sin autorización, o una API Key filtrada se reutiliza, pueden salir mensajes en gran volumen, el saldo se consume rápido y la reputación del canal puede bajar. EngageLab SMS puede limitar la frecuencia, el volumen y el alcance por país / región en el envío, pero no sustituye la protección de sus secretos y de sus propios puntos de entrada de envío.
Este artículo explica cómo combinar las capacidades de la plataforma con las protecciones del negocio para reducir el uso no autorizado de la API.
Arquitectura correcta
La API de EngageLab SMS solo debe llamarse desde el servidor de su sistema de negocio. No la llame directamente desde el navegador, una app cliente o un miniprograma.
Servidor del sistema de negocio → API de EngageLab SMS (con API Key; en envíos iniciados desde una página, envíe también end_user_ip)
- Guarde
dev_keyydev_secretsolo en el servidor. No los ponga en el código frontend, paquetes de la app, repositorios públicos ni variables CI en texto plano. - No exponga la URL de la API SMS ni los secretos en un endpoint que los usuarios finales puedan llamar directamente.
- 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 SMS con una Key |
end_user_ip en la solicitud de envío |
La IP del usuario final | La misma IP de usuario que dispara envíos repetidos 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 Enviar SMS para que el límite se aplique. Envíe la IP pública del dispositivo del usuario, no la de su servidor. En envíos masivos de marketing o notificación desde el servidor sin IP de usuario final, el límite por IP no se aplica a esa solicitud. Apóyese más en la lista blanca de API Key y en las cuotas de volumen.
Protecciones en la plataforma
Complete esta configuración en la consola SMS para limitar el daño si se usa mal la API:
| 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 solicitudes disparadas desde una página |
Enviar SMS | 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 |
| Configurar alertas de saldo insuficiente | Configuración de alertas | Detectar antes un gasto inusual |
Para recibir notificaciones cuando se alcance una alerta o una cuota, configure primero el evento de callback en Webhook.
Reforzar la protección según el tipo de plantilla
Los tipos de plantilla se abusan de formas distintas, así que el foco de protección también cambia.
Plantillas de notificación / marketing
Estos SMS suelen enviarse en lote desde el servidor según eventos de negocio o campañas. El riesgo principal es que una Key filtrada se use para envíos masivos.
- Los entornos de producción deben configurar una lista blanca de IP de API Key.
- Defina cuotas diarias / mensuales razonables para la aplicación, para que el saldo no se agote de un golpe.
- Dispare tareas programadas o por lote solo en un entorno de servidor controlado. No abra el envío como un endpoint HTTP sin autenticación.
Plantillas de código de verificación
Si usa una plantilla de tipo código de verificación y el envío lo dispara el botón «Obtener SMS» en un sitio o una app, proteja también su propia API de negocio:
- Ejecute una verificación humana (CAPTCHA de imagen, Turnstile o reCAPTCHA) antes de enviar 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 SMS» 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.
Tratar los códigos de error como señales de anomalía
Enviar SMS puede devolver estos errores relacionados con la frecuencia durante la validación o el envío. Cuando ocurran, ralentice los reintentos y compruebe si hay llamadas no autorizadas o tráfico concentrado:
| Código de error | Significado |
|---|---|
3004 |
Se superó el límite de frecuencia; la misma plantilla y el mismo destinatario no pueden reenviarse dentro de la ventana |
10006 |
Se superó el límite de frecuencia |
Si el volumen de envío ya alcanzó la cuota del Centro de seguridad, o usted ejecutó la parada de emergencia, las solicitudes posteriores se rechazan. Confirme primero el estado en el Centro de seguridad. No reintente de inmediato en bucle.
Qué hacer si se filtra un secreto
- En la consola SMS, deshabilite o rote la API Key.
- En el Centro de seguridad, use la parada de emergencia para pausar el envío SMS.
- Revise envíos anómalos en Detalles de mensajes y en los callbacks.
- Compruebe en Configuración de alertas si se disparó una alerta de saldo y revise el consumo reciente.
- Restrinja la lista blanca de IP de la API Key y compruebe si las cuotas diarias / mensuales son razonables.
- 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_secretno está en el frontend, la app, un repositorio público ni variables CI en texto plano. - 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; los envíos disparados desde una página incluyen
end_user_ip. - Hay cuotas diarias / mensuales, callbacks relacionados con el volumen y alertas de saldo.
- Los envíos de código de verificación ejecutan 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.










