Empêcher l'utilisation non autorisée de l'API SMS
Si l'API d'envoi SMS est appelée sans autorisation, ou si une API Key fuitée est réutilisée, des messages peuvent partir en grande quantité, le solde est consommé rapidement et la réputation du canal peut baisser. EngageLab SMS peut limiter la fréquence, le volume et la portée pays / région côté envoi, mais ne remplace pas la protection de vos secrets et de vos propres points d'entrée d'envoi.
Cet article explique comment combiner les capacités de la plateforme et les protections métier pour réduire l'utilisation non autorisée de l'API.
Architecture correcte
L'API EngageLab SMS ne doit être appelée que depuis le serveur de votre système métier. Ne l'appelez pas directement depuis un navigateur, une application cliente ou un mini-programme.
Serveur du système métier → API EngageLab SMS (avec API Key ; ajouter end_user_ip pour un envoi déclenché par une page)
- Conservez
dev_keyetdev_secretuniquement côté serveur. Ne les placez pas dans le code frontend, les paquets d'application, un dépôt public ou des variables CI en clair. - N'exposez pas l'URL de l'API SMS ni les secrets sur un point de terminaison que les utilisateurs finaux peuvent appeler directement.
- Pour les API Key de production, configurez une liste blanche d'IP appelantes. Voir API Key.
Ne pas mélanger les deux types d'IP
| Paramètre | Valeur à renseigner | Ce que cela bloque |
|---|---|---|
| Liste blanche IP de l'API Key | L'IP de sortie de votre serveur | Des IP inconnues qui appellent l'API SMS avec une Key |
end_user_ip dans la requête d'envoi |
L'IP de l'utilisateur final | La même IP utilisateur qui déclenche des envois répétés en peu de temps |
Après avoir activé la limite « par adresse IP » dans le Centre de sécurité, vous devez transmettre end_user_ip dans la requête Envoyer un SMS pour que la limite s'applique. Transmettez l'IP publique de l'appareil utilisateur, pas celle de votre serveur. Pour un envoi marketing ou de notification en masse côté serveur sans IP d'utilisateur final, la limitation par IP ne s'applique pas à cette requête. Appuyez-vous davantage sur la liste blanche de l'API Key et les quotas de volume.
Protections côté plateforme
Effectuez la configuration suivante dans la console SMS pour limiter les pertes en cas d'utilisation abusive de l'API :
| Action | Où | Objectif |
|---|---|---|
| Définir une liste blanche IP et une période de validité pour l'API Key, et pouvoir la désactiver à tout moment | API Key | Restreindre qui peut appeler l'API ; la désactiver immédiatement en cas de fuite |
| Activer les limites de fréquence pour le même numéro et la même IP | Centre de sécurité | Bloquer les envois répétés vers un numéro ou depuis une IP |
Transmettre end_user_ip sur les envois déclenchés par une page |
Envoyer un SMS | Faire appliquer la limitation par IP |
| Définir des valeurs d'alerte et de quota journalières / mensuelles | Centre de sécurité | Alerter ou mettre en pause automatiquement en cas de volume anormal |
| Définir une liste blanche ou noire par pays / région | Centre de sécurité | Éviter d'envoyer hors des zones métier |
| Mettre en pause le canal SMS en un clic en cas d'urgence | Centre de sécurité | Arrêter les pertes rapidement pendant un abus |
| Configurer les alertes de solde insuffisant | Paramètres d'alerte | Détecter plus tôt une consommation inhabituelle |
Pour recevoir une notification lorsqu'une alerte ou un quota est atteint, configurez d'abord l'événement de callback dans Webhook.
Renforcer la protection selon le type de modèle
Les types de modèles ne sont pas abusés de la même façon ; le focus de protection change.
Modèles de notification / marketing
Ces SMS sont généralement envoyés en masse depuis le serveur selon des événements métier ou des campagnes. Le risque principal est une clé fuitée utilisée pour un envoi de masse.
- Les environnements de production doivent configurer une liste blanche IP d'API Key.
- Définissez des quotas d'envoi journaliers / mensuels raisonnables pour l'application, afin que le solde ne soit pas vidé d'un coup.
- Déclenchez les tâches planifiées ou en masse uniquement dans un environnement serveur contrôlé. N'ouvrez pas l'envoi via un point HTTP non authentifié.
Modèles de code de vérification
Si vous utilisez un modèle de type code de vérification et que l'envoi est déclenché par le bouton « Obtenir le SMS » sur un site ou une application, protégez aussi votre propre API métier :
- Effectuez une vérification humaine (CAPTCHA image, Turnstile ou reCAPTCHA) avant l'envoi, et validez le résultat côté serveur.
- Définissez un intervalle de renvoi pour le même numéro (par exemple 60 secondes) et affichez un compte à rebours sur le frontend.
- Limitez les requêtes par compte, appareil et IP à la minute, à l'heure et au jour calendaire. Comptez aussi les requêtes en échec.
- « Obtenir le SMS » doit inclure une session connectée, ou une session valide hors connexion. N'exposez pas un point d'envoi public sans contexte.
Traiter les codes d'erreur comme des signaux d'anomalie
Envoyer un SMS peut renvoyer les erreurs de fréquence suivantes lors de la validation ou de l'envoi. Ralentissez alors les nouvelles tentatives et vérifiez s'il y a des appels non autorisés ou un trafic concentré :
| Code d'erreur | Signification |
|---|---|
3004 |
Limite de fréquence dépassée ; le même modèle et le même destinataire ne peuvent pas être renvoyés dans la fenêtre de limite |
10006 |
Limite de fréquence dépassée |
Si le volume d'envoi a déjà atteint le quota du Centre de sécurité, ou si vous avez exécuté l'arrêt d'urgence, les requêtes suivantes sont rejetées. Confirmez d'abord l'état dans le Centre de sécurité. Ne relancez pas immédiatement en boucle.
Que faire en cas de fuite de secret
- Dans la console SMS, désactivez ou faites tourner l'API Key.
- Dans le Centre de sécurité, utilisez l'arrêt d'urgence pour suspendre l'envoi SMS.
- Vérifiez les envois anormaux dans Détails des messages et les callbacks.
- Vérifiez dans Paramètres d'alerte si une alerte de solde a été déclenchée et rapprochez la consommation récente.
- Resserrer la liste blanche IP de l'API Key et vérifier si les quotas journaliers / mensuels sont raisonnables.
- Reprenez l'envoi uniquement une fois le risque écarté.
Liste de contrôle avant mise en production
- L'API n'est appelée que depuis le serveur.
dev_secretn'est pas dans le frontend, l'application, un dépôt public ou des variables CI en clair. - L'API Key de production a une liste blanche d'IP de sortie du serveur.
- Les limites de fréquence par numéro sont activées dans le Centre de sécurité ; les envois déclenchés par une page incluent
end_user_ip. - Les quotas journaliers / mensuels sont définis, et les callbacks liés au volume ainsi que les alertes de solde sont configurés.
- Les envois de type code de vérification exécutent CAPTCHA et limites métier avant d'appeler EngageLab.
- L'ordre de réaction en cas d'abus est clair : désactiver la Key → arrêt d'urgence → examiner les enregistrements d'envoi.










