通过GraphQL公开的客户组名称、区段和促销规则信息

本文提供了一个修补程序,用于防止客户组名称、客户区段和促销规则信息通过GraphQL泄露。 Adobe Commerce 2.4.8-p1中计划修复此问题。

描述 description

受影响的产品和版本

为Adobe Commerce版本创建了修补程序:

  • Adobe Commerce(所有部署方法) 2.4.8

与Adobe Commerce版本兼容:

  • Adobe Commerce(所有部署方法) 2.4.8

问题

对于Storefront Personalization插件,我们引入了一个新的GraphQL突变,用于显示客户组名称、区段、购物车和目录规则等基本信息。 但是,如果名称中包含敏感数据(如优惠详细信息或优惠券代码),则可能会泄露。

重现问题的步骤

案例I:目录规则

  1. 在​ 管理员 ​侧边栏上,转到 营销 > 目录价格规则 > 添加新规则

  2. 定义规则条件(例如,产品属性或类别)。

  3. 保存并应用规则。

  4. 确保产品符合规则条件。

  5. 运行以下GraphQL查询以获取所有规则:

    code language-none
    query {
        allCatalogRules {
            name
        }
    }
    
  6. 查询产品以验证规则是否适用:

    code language-none
    query {
        products(filter: { sku: { eq: "product-sku" } }) {
            items {
                name
                rules {
                    name
                }
            }
        }
    }
    

案例II:购物车规则

  1. 在​ 管理员 ​侧边栏上,转到 营销 > 购物车价格规则 > 添加新规则

  2. 设置条件,如最小购物车值和客户组。

  3. 保存并应用规则。

  4. 将产品添加到购物车以触发规则。

  5. 使用GraphQL验证所有购物车规则:

    code language-none
    query {
        allCartRules {
            name
        }
    }
    
  6. 检查规则是否已应用于活动的购物车:

    code language-none
    query {
        cart(cart_id: "your-cart-id") {
            rules {
                name
            }
        }
    }
    

案例III:客户组

  1. 在​ 管理员 ​侧边栏上,转到 客户 > 客户组

  2. 验证预期的组是否存在。

  3. 使用 GraphQL 获取所有组:

    code language-none
    query {
        allCustomerGroups {
            name
        }
    }
    
  4. 验证客户/来宾的组:

    code language-none
    query {
        customerGroup {
            name
        }
    }
    

案例IV:客户区段(仅适用于Adobe Commerce)

  1. 在​ 管理员 ​侧边栏上,转到 客户 > 客户区段 > 添加区段

  2. 定义基于客户的条件(例如,订单、购物车内容)。

  3. 分配适用的范围: 访客已注册,或同时分配两者。

  4. 确保条件与测试客户匹配。

  5. 使用GraphQL检查所有区段:

    code language-none
    query {
        allCustomerSegments {
            name
            apply_to
        }
    }
    
  6. 验证应用于购物车的区段:

    code language-none
    query {
        customerSegments(cartId: "your-cart-id") {
            name
        }
    }
    

预期的结果

客户组、区段的名称和促销规则信息不通过GraphQL公开。

实际结果

客户组、区段的名称和促销规则信息可通过GraphQL公开。

解决方法 resolution

根据您的Adobe Commerce版本应用附加的修补程序:

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