Standardkonfigurationsoptionen für GraphQL Query Executor

Erfahren Sie, wie Sie in GraphQL-Abfragen Fehler beheben können, die durch Standard-Parser-Optionen in der neuesten GraphQL Java-Aktualisierung verursacht wurden.**

Beschreibung description

Umgebung

Adobe Experience Manager

Problem/Symptome

Das neueste GraphQL-Java-Update erstellt Standard-Parser-Optionen, die beim Ausführen komplexer GraphQL-Abfragen zum Fehler "Denial of Service" InvalidSyntax führen können.  Diese Validierungen wurden in GraphQL-Java eingeführt, um Denial-of-Service-Angriffe zu vermeiden.

Für den Kontext werden diese Einschränkungen in https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35. definiert.

Auflösung resolution

Sie können das Problem beheben, indem Sie benutzerdefinierte Parser-Optionen übergeben, indem Sie die angegebenen Schritte ausführen:

  • Dies gilt für sehr große GraphQL-Abfragen, bei denen ein Fehler vom Typ "Denial of Service" InvalidSyntax zurückgegeben wird, der entweder wie folgt beginnt:

    • AEM Cloud Service (Beschränkung eingeführt mit der internen Referenz SITES-13906 in Version 2023.8 und Problemumgehung eingeführt in Version 2024.3) oder
    • AEM 6.5.21 (Beschränkung und Problemumgehung, eingeführt mit der internen Referenz SITES-17355)
  • Dies lässt sich vermeiden, indem Sie die OSGi-Konfiguration Apache Sling Default GraphQL Query Executor konfigurieren und die Werte Max Query Tokens und Max Whitespaces Tokens entsprechend den Anforderungen anpassen.

Dies sollte als letztes Mittel erfolgen und die Werte sollten schrittweise erhöht werden, bis die Anforderungen des Projekts erfüllt sind.

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