透過GraphQL公開的客戶群組名稱、區段和促銷規則資訊

本文提供Hotfix來防止客戶群組名稱、客戶區段和促銷規則資訊透過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