Opciones de configuración predeterminadas del ejecutor de consultas de GraphQL

Aprenda a solucionar errores de denegación de servicio en consultas de GraphQL causados por las opciones predeterminadas del analizador en la última actualización de Java de GraphQL.

Descripción description

Entorno

Adobe Experience Manager

Problema/Síntomas

La última actualización de GraphQL-Java crea opciones predeterminadas del analizador que podrían provocar el error "Denegación de servicio" InvalidSyntax al ejecutar consultas complejas de GraphQL.  Estas validaciones se introdujeron en GraphQL-Java para evitar ataques de denegación de servicio.

Para el contexto, esas limitaciones se definen en https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.

Resolución resolution

Puede solucionar el problema pasando las opciones personalizadas del analizador siguiendo los pasos indicados:

  • Esto es válido para consultas GraphQL de gran tamaño que devolverían un error "Denegación de servicio" InvalidSyntax que comienza por:

    • AEM Cloud Service (limitación introducida con la referencia interna SITES-13906 en la versión 2023.8 y solución alternativa introducida en la versión 2024.3) o;
    • AEM.5.21 (limitación y solución introducidas con la referencia interna SITES-17355)
  • Esto se puede superar configurando la configuración de OSGI Apache Sling Default GraphQL Query Executor y ajustando los valores Máximo de tokens de consulta y Máximo de tokens de espacios en blanco según las necesidades.

Esto se debe hacer como último recurso y los valores se deben aumentar gradualmente hasta que se satisfagan las necesidades del proyecto.

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