Passer au contenu principal
Créer des applications sécurisées protège à la fois vos utilisateurs et la plateforme X. Ce guide présente les pratiques de sécurité essentielles pour les développeurs de la X API.

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

Vos clés et jetons d’API sont les clés de votre application. Protégez-les soigneusement :
1

Utiliser des variables d’environnement

Stockez les identifiants dans des variables d’environnement, pas dans le code.
export X_API_KEY="your-api-key"
export X_API_SECRET="your-api-secret"
2

Ne jamais valider de secrets

Ajoutez les fichiers contenant des identifiants à .gitignore. Utilisez des outils comme git-secrets pour éviter les commits accidentels.
3

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.
4

Utiliser des autorisations minimales

Ne demandez que les scopes OAuth dont votre application a réellement besoin.

En cas de compromission des identifiants

  1. Régénérez-les immédiatement dans la Console de développement
  2. Révoquez les anciens jetons — la régénération invalide automatiquement les anciens identifiants
  3. Auditez l’utilisation — vérifiez la présence d’activité API non autorisée
  4. 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

Ne faites jamais confiance aux données fournies par l’utilisateur. Validez et assainissez toutes les données avant de les utiliser :
# Mauvais - vulnérable à l'injection
query = f"from:{user_input}"

# Good - validate input first
import re
if re.match(r'^[a-zA-Z0-9_]{1,15}$', user_input):
    query = f"from:{user_input}"

Encodage de la sortie

Échappez les données de X API avant de les afficher dans du HTML afin de prévenir les attaques XSS :
// Mauvais - vulnérable au XSS
element.innerHTML = tweet.text;

// Bon - échapper le HTML
element.textContent = tweet.text;

Vulnérabilités courantes à prévenir

VulnérabilitéPrévention
XSSÉchapper tout contenu généré par les utilisateurs avant de l’afficher
CSRFUtiliser des jetons anti-CSRF dans les formulaires ; vérifier le paramètre state OAuth
Injection SQLUtiliser des requêtes paramétrées et ne jamais concaténer les données fournies par l’utilisateur
Redirections ouvertesValider les URL de rappel par rapport à une liste d’autorisation

Sécurité OAuth

Paramètre state

Utilisez toujours le paramètre state dans les flux OAuth afin de prévenir les attaques CSRF :
import secrets

# Générer l'état avant autorisation
state = secrets.token_urlsafe(32)
session['oauth_state'] = state

# Vérifier l'état après callback
if request.args.get('state') != session.get('oauth_state'):
    abort(403)  # Incohérence d'état - CSRF possible

Stockage des jetons

Type de jetonRecommandation de stockage
Jetons d’accèsBase de données chiffrée ou coffre-fort sécurisé
Jetons d’actualisationBase de données chiffrée avec contrôles d’accès supplémentaires
Jetons BearerVariables 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é

Si vous découvrez une vulnérabilité de sécurité affectant X :
Signalez-la dans les 48 heures. Les utilisateurs de la plateforme développeurs X doivent notifier X dans un délai maximal de 48 heures après avoir suspecté un incident 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é

  • 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.