Exigences principales
TLS requis
Toutes les requêtes à l’API doivent utiliser HTTPS. Le HTTP en clair est refusé.
Sécurité des identifiants
N’exposez jamais de clés ou de jetons d’API dans le code côté client, les journaux ou les dépôts.
Protection des identifiants
Utiliser des variables d’environnement
Stockez les identifiants dans des variables d’environnement, pas dans le code.
Ne jamais valider de secrets
Ajoutez les fichiers contenant des identifiants à
.gitignore. Utilisez des outils comme git-secrets pour éviter les commits accidentels.Renouveler régulièrement les clés
Régénérez les clés périodiquement et immédiatement si vous pensez qu’elles ont été compromises.
En cas de compromission des identifiants
- Régénérez-les immédiatement dans la Console de développement
- Révoquez les anciens jetons — la régénération invalide automatiquement les anciens identifiants
- Auditez l’utilisation — vérifiez la présence d’activité API non autorisée
- Mettez à jour votre App — déployez les nouveaux identifiants dans tous les environnements
Sécurité de l’application
Validation des données d’entrée
Encodage de la sortie
Vulnérabilités courantes à prévenir
| Vulnérabilité | Prévention |
|---|---|
| XSS | Échapper tout contenu généré par les utilisateurs avant de l’afficher |
| CSRF | Utiliser des jetons anti-CSRF dans les formulaires ; vérifier le paramètre state OAuth |
| Injection SQL | Utiliser des requêtes paramétrées et ne jamais concaténer les données fournies par l’utilisateur |
| Redirections ouvertes | Valider les URL de rappel par rapport à une liste d’autorisation |
Sécurité OAuth
Paramètre state
state dans les flux OAuth afin de prévenir les attaques CSRF :
Stockage des jetons
| Type de jeton | Recommandation de stockage |
|---|---|
| Jetons d’accès | Base de données chiffrée ou coffre-fort sécurisé |
| Jetons d’actualisation | Base de données chiffrée avec contrôles d’accès supplémentaires |
| Jetons Bearer | Variables d’environnement ou configuration sécurisée |
Pratiques de développement sécurisées
Audits de sécurité
Effectuez régulièrement des examens de sécurité et des tests d’intrusion.
Analyse des dépendances
Maintenez vos dépendances à jour. Utilisez des outils pour détecter les packages vulnérables.
Journalisation
Enregistrez les événements de sécurité, mais ne consignez jamais les identifiants ou les données sensibles.
Surveillance
Configurez des alertes pour des modèles d’utilisation inhabituels de l’API.
Signalement des failles de sécurité
X Bug Bounty
Signalez les vulnérabilités des systèmes de X via HackerOne.
Incident concernant votre application
Si votre application utilisant des données X est compromise, effectuez votre signalement via ce même canal.
Liste de contrôle de conformité
Exigences de sécurité pour les développeurs X API
Exigences de sécurité pour les développeurs X API
- Toutes les requêtes à l’API utilisent TLS/HTTPS
- Informations d’identification stockées de manière sécurisée (pas dans le code ni les journaux)
- Jetons utilisateur chiffrés au repos
- Validation des entrées sur toutes les données fournies par l’utilisateur
- Encodage des sorties pour prévenir les attaques XSS
- Protection CSRF sur les flux OAuth
- Journalisation de sécurité activée (sans données sensibles)
- Plan de réponse aux incidents documenté
- Dépendances mises à jour régulièrement
- Portées OAuth demandées limitées au strict nécessaire
Ressources
Guide d’authentification
Implémentez correctement OAuth.
Autorisations de l’App
Configurez les autorisations minimales nécessaires.