Sécurité et bonnes pratiques
Les règles à suivre dans toute intégration du SDK : identifiants, connexions, gestion des erreurs, journaux et validation des données.
Identifiants
Ne les écrivez jamais dans le code ni dans un dépôt, et conservez-les dans un gestionnaire de secrets. Voir Identifiants et environnements.
Le SDK .NET propose aussi DataProtectionHelper pour chiffrer un fichier d'identifiants sur le serveur. Sous Windows, il utilise DPAPI avec la portée machine : tout processus du serveur peut déchiffrer le fichier. Limitez donc son accès au compte de service, et préférez un gestionnaire de secrets quand vous le pouvez.
Connexions
Le SDK valide les certificats TLS en production comme en préproduction. Ne désactivez jamais cette validation, même pour un test : un faux serveur pourrait alors recevoir vos identifiants et vos documents.
- .NET : n'installez pas de rappel qui accepte tous les certificats (
ServerCertificateCustomValidationCallback). - Python : laissez
SettingsHelper.verify_sslà sa valeur de production. - PHP : ne passez jamais
verifySslà false au client.
Vérifier chaque réponse
Chaque appel retourne un statut : vérifiez-le avant d'utiliser la réponse, et, dans un envoi, celui de chaque destinataire. Affichez à vos utilisateurs un message d'erreur générique, et gardez le détail (statut, numéro de suivi) dans vos journaux. Voir Codes de statut.
Ne pas envoyer deux fois
Un envoi n'est pas forcément annulé par une erreur réseau : le délai peut expirer alors que le message est déjà parti. Ne relancez pas automatiquement un envoi.
- Réessayez seulement quand le statut indique que la requête n'a pas été traitée (429, 503), avec un délai croissant.
- Après un délai dépassé, consultez les journaux avant de renvoyer.
Journaux
| À journaliser | À ne jamais journaliser |
|---|---|
| L'opération, le statut, le numéro de suivi, l'heure | Les identifiants de l'API |
| Le nombre de destinataires et de fichiers | Le mot de passe d'un message, un code SMS |
| Le lien sécurisé d'un destinataire | |
| Le contenu déchiffré d'un message ou d'un fichier |
Les adresses courriel et les numéros de téléphone sont des renseignements personnels : masquez-les dans vos journaux techniques si vous n'en avez pas besoin.
Valider les données
- Adresses et téléphones : validez-les avant l'envoi avec
IsValidEmailAddressetIsValidPhoneNumber. - Contenu HTML : si le message contient des données saisies par quelqu'un, encodez-les pour le HTML avant de les insérer.
- Chemins de fichiers : n'utilisez jamais tel quel un chemin fourni par un utilisateur. Voir Pièces jointes.
Environnements
N'utilisez jamais vos identifiants de production dans un environnement de test : la préproduction a ses propres identifiants. Voir Identifiants et environnements.