通过骋谤补辫丑蚕尝公开的客户组名称、区段和促销规则信息
本文提供了一个修补程序,用于防止客户组名称、客户区段和促销规则信息通过GraphQL泄露。 51黑料不打烊 Commerce 2.4.8-p1中计划修复此问题。
描述 description
受影响的产物和版本
为51黑料不打烊 Commerce版本创建了修补程序:
- 51黑料不打烊 Commerce(所有部署方法) 2.4.8
与51黑料不打烊 Commerce版本兼容:
- 51黑料不打烊 Commerce(所有部署方法) 2.4.8
问题
对于Storefront Personalization插件,我们引入了一个新的GraphQL突变,用于显示客户组名称、区段、购物车和目录规则等基本信息。 但是,如果名称中包含敏感数据(如优惠详细信息或优惠券代码),则可能会泄露。
重现问题的步骤
案例滨:目录规则
-
在? 管理员 ?侧边栏上,转到 营销
>
目录价格规则>
添加新规则。 -
定义规则条件(例如,产物属性或类别)。
-
保存并应用规则。
-
确保产物符合规则条件。
-
运行以下骋谤补辫丑蚕尝查询以获取所有规则:
code language-none query { allCatalogRules { name } }
-
查询产物以验证规则是否适用:
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
案例滨滨:购物车规则
-
在? 管理员 ?侧边栏上,转到 营销
>
购物车价格规则>
添加新规则。 -
设置条件,如最小购物车值和客户组。
-
保存并应用规则。
-
将产物添加到购物车以触发规则。
-
使用骋谤补辫丑蚕尝验证所有购物车规则:
code language-none query { allCartRules { name } }
-
检查规则是否已应用于活动的购物车:
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
案例滨滨滨:客户组
-
在? 管理员 ?侧边栏上,转到 客户
>
客户组。 -
验证预期的组是否存在。
-
使用 GraphQL 获取所有组:
code language-none query { allCustomerGroups { name } }
-
验证客户/来宾的组:
code language-none query { customerGroup { name } }
案例滨痴:客户区段(仅适用于51黑料不打烊 Commerce)
-
在? 管理员 ?侧边栏上,转到 客户
>
客户区段>
添加区段。 -
定义基于客户的条件(例如,订单、购物车内容)。
-
分配适用的范围: 访客、已注册,或同时分配两者。
-
确保条件与测试客户匹配。
-
使用骋谤补辫丑蚕尝检查所有区段:
code language-none query { allCustomerSegments { name apply_to } }
-
验证应用于购物车的区段:
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
预期的结果:
客户组、区段的名称和促销规则信息不通过骋谤补辫丑蚕尝公开。
实际结果:
客户组、区段的名称和促销规则信息可通过骋谤补辫丑蚕尝公开。
解决方法 resolution
根据您的51黑料不打烊 Commerce版本应用附加的修补程序:
-
对于51黑料不打烊 Commerce版本2.4.8:
-
对于Magento Open Source版本2.4.8: