Standardkonfigurationsalternativ för GraphQL Query Executor

Lär dig adressera Denial of Service fel i GraphQL-frågor som orsakas av standardtolkningsalternativ i den senaste GraphQL Java-uppdateringen.

Beskrivning description

Miljö

Adobe Experience Manager

Problem/symtom

Den senaste GraphQL-Java-uppdateringen skapar standardtolkningsalternativ som kan leda till "Denial of Service" InvalidSyntax fel vid körning av komplexa GraphQL-frågor.  Dessa valideringar infördes i GraphQL-Java för att undvika denial of service-attacker.

I sammanhanget definieras dessa begränsningar i https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.

Upplösning resolution

Du kan åtgärda problemet genom att skicka anpassade tolkningsalternativ enligt följande steg:

  • Detta gäller för mycket stora GraphQL-frågor som skulle returnera en "Denial of Service" InvalidSyntax fel, som börjar med:

    • AEM Cloud Service (begränsning som infördes med den interna referensen SITES-13906 i version 2023.8 och den lösning som infördes i version 2024.3) eller
    • AEM 6.5.21 (begränsning och lösning som infördes med den interna referensen SITES-17355)
  • Detta kan undvikas genom att konfigurera OSGI-konfigurationen  Apache Sling-standardhanterare för GraphQL-frågor  och justera värdena  Max. frågetoken  och  Max blanktecken  beroende på behov.

Detta bör göras som en sista utväg och värdena bör ökas gradvis tills projektets behov är tillgodosedda.

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