Nomes de grupos de clientes, segmentos e informações de regras promocionais expostos por meio do GraphQL
Este artigo fornece um hotfix para evitar a exposição de nomes de grupos de clientes, segmentos de clientes e informações de regras promocionais por meio do GraphQL. O problema está programado para ser corrigido no Adobe Commerce 2.4.8-p1.
Descrição description
Produtos e versões afetados
O patch foi criado para a versão do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.8
Compatível com as versões do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.8
Problema
Para o Storefront Personalization Drop-ins, novas mutações do GraphQL foram introduzidas para exibir informações básicas, como nomes de grupos de clientes, segmentos, carrinho e regras de catálogo. No entanto, isso pode expor dados confidenciais, como detalhes da oferta ou códigos de cupom, se incluídos nos nomes.
Etapas a serem reproduzidas
Caso I: Regra de Catálogo
-
Na barra lateral Administrador, vá para Marketing
>Regra de preço de catálogo>Adicionar Nova Regra. -
Defina as condições da regra (por exemplo, atributo ou categoria do produto).
-
Salve e aplique a regra.
-
Certifique-se de que um produto atenda às condições da regra.
-
Execute a seguinte consulta do GraphQL para buscar todas as regras:
code language-none query { allCatalogRules { name } } -
Consulte um produto para verificar se a regra se aplica:
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
Caso II: Regra do carrinho
-
Na barra lateral Administrador, vá para Marketing
>Regra de preço do carrinho>Adicionar Nova Regra. -
Defina condições como valor mínimo do carrinho e grupo de clientes.
-
Salve e aplique a regra.
-
Adicione produtos ao carrinho para acionar a regra.
-
Use o GraphQL para verificar todas as regras do carrinho:
code language-none query { allCartRules { name } } -
Verifique se as regras são aplicadas ao carrinho ativo:
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
Caso III: Grupo de Clientes
-
Na barra lateral Administrador, vá para Clientes
>Grupos de Clientes. -
Verifique se os grupos esperados existem.
-
Use o GraphQL para buscar todos os grupos:
code language-none query { allCustomerGroups { name } } -
Verifique o grupo do cliente/convidado:
code language-none query { customerGroup { name } }
Caso IV: Segmento do cliente (somente para Adobe Commerce)
-
Na barra lateral Administrador, vá para Clientes
>Segmentos de clientes>Adicionar segmento. -
Definir condições com base no cliente (por exemplo, pedido, conteúdo do carrinho).
-
Atribuir escopo aplicável: Visitante, Registrado ou ambos.
-
Verifique se as condições correspondem a um cliente de teste.
-
Use o GraphQL para verificar todos os segmentos:
code language-none query { allCustomerSegments { name apply_to } } -
Valide os segmentos aplicados a um carrinho:
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
Resultado esperado:
Os nomes de grupos de clientes, segmentos e informações de regras promocionais não são expostos por meio do GraphQL.
Resultado real:
Os nomes de grupos de clientes, segmentos e informações de regras promocionais são expostos por meio do GraphQL.
Resolução resolution
Aplique os patches anexados dependendo da sua versão do Adobe Commerce:
-
Para a versão 2.4.8 do Adobe Commerce:
-
Para a versão 2.4.8 do Magento Open Source: