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

  1. Na barra lateral Administrador, vá para Marketing > Regra de preço de catálogo > Adicionar Nova Regra.

  2. Defina as condições da regra (por exemplo, atributo ou categoria do produto).

  3. Salve e aplique a regra.

  4. Certifique-se de que um produto atenda às condições da regra.

  5. Execute a seguinte consulta do GraphQL para buscar todas as regras:

    code language-none
    query {
        allCatalogRules {
            name
        }
    }
    
  6. 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

  1. Na barra lateral Administrador, vá para Marketing > Regra de preço do carrinho > Adicionar Nova Regra.

  2. Defina condições como valor mínimo do carrinho e grupo de clientes.

  3. Salve e aplique a regra.

  4. Adicione produtos ao carrinho para acionar a regra.

  5. Use o GraphQL para verificar todas as regras do carrinho:

    code language-none
    query {
        allCartRules {
            name
        }
    }
    
  6. 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

  1. Na barra lateral Administrador, vá para Clientes > Grupos de Clientes.

  2. Verifique se os grupos esperados existem.

  3. Use o GraphQL para buscar todos os grupos:

    code language-none
    query {
        allCustomerGroups {
            name
        }
    }
    
  4. Verifique o grupo do cliente/convidado:

    code language-none
    query {
        customerGroup {
            name
        }
    }
    

Caso IV: Segmento do cliente (somente para Adobe Commerce)

  1. Na barra lateral Administrador, vá para Clientes > Segmentos de clientes > Adicionar segmento.

  2. Definir condições com base no cliente (por exemplo, pedido, conteúdo do carrinho).

  3. Atribuir escopo aplicável: Visitante, Registrado ou ambos.

  4. Verifique se as condições correspondem a um cliente de teste.

  5. Use o GraphQL para verificar todos os segmentos:

    code language-none
    query {
        allCustomerSegments {
            name
            apply_to
        }
    }
    
  6. 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:

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