Bonnes pratiques de sécurité
Une intégration de paiement est une cible de grande valeur. Ces pratiques préservent la sécurité de votre compte, de vos jetons et de l'argent de vos clients.
Protégez vos jetons API
- Stockez les jetons comme des secrets. Utilisez des variables d'environnement ou un gestionnaire de secrets — ne les validez jamais dans le contrôle de version et ne les intégrez pas dans des clients mobiles/web.
- Côté serveur uniquement. Les jetons appartiennent à votre backend. Un jeton envoyé à un navigateur ou une application peut être extrait et détourné.
- Renouvelez régulièrement et immédiatement en cas de suspicion d'exposition. Révoquez avec
DELETE /api/auth/login-tokens/<token_key>/et émettez-en un nouveau. - Séparez les environnements. Utilisez des jetons distincts pour le sandbox et la production ; ne promouvez jamais un jeton qui a touché un script de test ou un journal.
- Ne journalisez jamais les jetons. Nettoyez les en-têtes
Authorizationdes journaux et des rapports d'erreur.
Si un jeton fuite
Révoquez-le sur-le-champ (supprimez par token_key), générez un remplacement, et auditez
l'activité récente. Un jeton compromis peut créer des paiements en votre nom.
Sécurisez votre point de terminaison de webhook
- Servez uniquement en HTTPS.
- Soyez idempotent. Le même callback peut arriver plus d'une fois — basez le traitement
sur
referenceafin que les doublons soient sans effet. - Ré-interrogez avant de livrer. Confirmez le statut et le montant faisant autorité avec
GET /api/payments/transaction/<reference>/avant de libérer des biens ou des fonds — ne faites pas confiance au seul corps du webhook. - Répondez vite, travaillez en asynchrone. Renvoyez
200immédiatement et effectuez le gros du travail dans une tâche en arrière-plan pour ne pas déclencher de relances. - Validez les entrées. Traitez le corps comme non fiable ; validez les formes et les valeurs.
Vérifiez les montants et les références
- Faites correspondre les
amount/currencyrenvoyés à la commande que vous avez créée. - Suivez aussi l'unicité de
merchant_referencede votre côté — c'est votre première ligne de défense contre le double traitement lors des relances.
Moindre privilège & hygiène de compte
- Donnez à chaque intégration son propre jeton ; ne partagez pas un jeton entre plusieurs systèmes.
- Restreignez qui dans votre équipe peut générer ou consulter des jetons.
- Maintenez à jour les coordonnées de votre compte pour que les avis de sécurité vous parviennent.
Transport & données
- Appelez toujours l'API en HTTPS ; ne désactivez jamais la vérification TLS.
- Envoyez et stockez les valeurs monétaires sous forme de chaînes décimales, jamais de flottants, pour éviter les erreurs d'arrondi.
- Résolvez l'IP cliente et les autres métadonnées de requête côté serveur ; ne faites pas confiance aux en-têtes fournis par le client.
Défense en profondeur
Aucun contrôle isolé ne suffit. Combinez stockage des secrets, traitement de webhook idempotent + vérifié, ré-interrogation faisant autorité, et surveillance — pour qu'une seule erreur ne devienne pas un incident.