Schema Leak — Fuite de schéma & introspection GraphQL

API GraphQL

Définition

Exposition involontaire de la structure interne d'une API : introspection GraphQL activée en production, spec OpenAPI publique, ou messages d'erreur détaillant champs et types. Une carte complète du schéma facilite grandement l'attaque.

Introspection GraphQL

# Requête d introspection complète
query IntrospectionQuery {
  __schema {
    types { name fields { name } }
    queryType { name }
    mutationType { name }
  }
}

# Outils de visualisation
# graphql-voyager, graphqlmap, clairvoyance (si introspection off)

Défenses

Désactiver l'introspection en production, masquer/épurer les messages d'erreur, ne pas exposer publiquement la spec OpenAPI complète, et appliquer une autorisation au niveau de chaque champ/résolveur.