Nombres de grupos de clientes, segmentos e información de reglas promocionales expuesta a través de GraphQL
Este artículo proporciona una revisión para evitar la exposición de los nombres de grupos de clientes, segmentos de clientes e información de reglas promocionales a través de GraphQL. Está programado que el problema se corrija en Adobe Commerce 2.4.8-p1.
Descripción description
Productos y versiones afectados
El parche se ha creado para la versión de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.8
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.8
Problema
Para los complementos de Storefront Personalization, se introdujeron nuevas mutaciones de GraphQL para mostrar información básica como nombres de grupos de clientes, segmentos, carrito de compras y reglas de catálogo. Sin embargo, esto puede exponer datos confidenciales, como detalles de ofertas o códigos de cupones, si se incluyen en los nombres.
Pasos a seguir
Caso I: Regla de catálogo
-
En la barra lateral Administrador, vaya a Marketing
>
Regla de precio de catálogo>
Agregar nueva regla. -
Defina las condiciones de la regla (por ejemplo, atributo o categoría del producto).
-
Guarde y aplique la regla.
-
Asegúrese de que un producto cumpla las condiciones de la regla.
-
Ejecute la siguiente consulta de GraphQL para recuperar todas las reglas:
code language-none query { allCatalogRules { name } }
-
Consulte un producto para comprobar si se aplica la regla:
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
Caso II: Regla de carro de compras
-
En la barra lateral Administrador, vaya a Marketing
>
Regla de precio del carro de compras>
Agregar nueva regla. -
Establecer condiciones como valor mínimo del carro de compras y grupo de clientes.
-
Guarde y aplique la regla.
-
Añada productos al carro de compras para almacenar en déclencheur la regla.
-
Utilice GraphQL para comprobar todas las reglas del carro de compras:
code language-none query { allCartRules { name } }
-
Comprobar si se aplican reglas al carro de compras activo:
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
Caso III: Grupo de clientes
-
En la barra lateral Admin, vaya a Clientes
>
Grupos de clientes. -
Compruebe que existen los grupos esperados.
-
Use GraphQL para recuperar todos los grupos:
code language-none query { allCustomerGroups { name } }
-
Verifique el grupo del cliente/invitado:
code language-none query { customerGroup { name } }
Caso IV: Segmento de cliente (solo para Adobe Commerce)
-
En la barra lateral Admin, vaya a Clientes
>
Segmentos de cliente>
Agregar segmento. -
Defina condiciones basadas en el cliente (por ejemplo, pedidos, contenido del carro de compras).
-
Asignar ámbito aplicable: Visitante, Registrado o ambos.
-
Asegúrese de que las condiciones coincidan con un cliente de prueba.
-
Utilice GraphQL para comprobar todos los segmentos:
code language-none query { allCustomerSegments { name apply_to } }
-
Validar los segmentos aplicados a un carro de compras:
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
Resultado esperado:
Los nombres de los grupos de clientes, los segmentos y la información de reglas promocionales no se exponen a través de GraphQL.
Resultado real:
Los nombres de los grupos de clientes, los segmentos y la información de reglas promocionales se exponen a través de GraphQL.
Resolución resolution
Aplique los parches adjuntos según la versión de Adobe Commerce:
-
Para la versión 2.4.8 de Adobe Commerce:
-
Para la versión 2.4.8 de Magento Open Source: