Options de configuration de l’exécution de requête GraphQL par défaut

Découvrez comment résoudre le problème Refus de service des erreurs dans les requêtes GraphQL dues aux options d’analyseur par défaut lors de la dernière mise à jour Java de GraphQL.

Description description

Environnement

Adobe Experience Manager

Problème/Symptômes

La dernière mise à jour de GraphQL-Java crée des options d’analyseur par défaut qui peuvent mener à "Denial of Service" InvalidSyntax lors de l’exécution de requêtes complexes GraphQL.  Ces validations ont été introduites dans GraphQL-Java pour éviter les attaques par déni de service.

Dans le contexte, ces limites sont définies dans https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.

Résolution resolution

Vous pouvez résoudre le problème en transmettant des options d’analyseur personnalisées en procédant comme suit :

  • Ceci est valide pour les requêtes GraphQL très volumineuses qui renverraient une "Denial of Service" InvalidSyntax erreur, en commençant par :

    • AEM Cloud Service (limitation introduite avec la référence interne SITES-13906 dans la version 2023.8 et solution de contournement introduite dans la version 2024.3) ou
    • AEM 6.5.21 (limitation et contournement introduits avec la référence interne SITES-17355)
  • Cela peut être contourné en configurant la configuration OSGI.  Exécution de requête GraphQL par défaut Apache Sling  et ajustez les valeurs  Jetons de requête max.  et  Nombre maximal de jetons d’espace blanc  selon les besoins.

Cela doit être effectué en dernier recours et les valeurs doivent être augmentées progressivement jusqu’à ce que les besoins du projet soient satisfaits..

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f