套用AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch以解決升級時發生的PHP嚴重錯誤

升級至Magento Open Source2.4.3期間可能會發生下列嚴重錯誤:

PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74

此錯誤是因為使用str_contains函式所造成,該函式是PHP 8.x函式。 應用程式Open Source 2.4.3不支援PHP 8.x。此Hotfix會以支援的PHP 7.x函式取代此函式。 請參閱Adobe Commerce升級2.4.3、2.3.7-p1 PHP嚴重錯誤Hotfix知識庫文章。

反白顯示

請檢視此版本中的下列重點專案。

大幅增強安全性

此版本包含33項安全性修正和平台安全性改善。 其中許多安全性修正已反向移植至2.4.2-p2和2.3.7-p1。

協助關閉遠端程式碼執行(RCE)和跨網站指令碼(XSS)弱點的33項安全性增強功能

目前尚未發生與這些問題相關的已確認攻擊。 但是,某些漏洞可能會被用來存取客戶資訊或接管管理員工作階段。 這些問題大多需要攻擊者先取得Admin的存取權。 因此,我們提醒您採取一切必要步驟來保護您的管理員,包括但不限於:IP允許清單、雙因素驗證、使用VPN、使用唯一位置而非/admin以及良好的密碼衛生。 如需這些已修正問題的討論,請參閱Adobe安全性公告

其他安全性增強功能

此版本的安全性改善專案可改善對最新安全性最佳實務的合規性,包括:

  • 新的Composer外掛程式 ​有助於防止相依性混淆,並識別與公用套件存放庫上的內部套件具有相同名稱的惡意套件。 請參閱Adobe發行包含2.4.3版部落格的新撰寫器外掛程式。

  • 現已內建於API,以防止拒絕服務(DoS)攻擊。 Web API現在會限制使用者端可請求的資源大小或數量(預設上限設為20,並可根據業務需求設定為不同的值)。 請參閱速率限制,以取得設定這些限制的資訊。

  • ReCAPTCHA涵蓋範圍已延伸 ​以包含:

    • 擁有對應HTML頁面的網頁API會透過ReCAPTCHA涵蓋。 (這不包括透過整合存取的網頁API。) ReCAPTCHA涵蓋範圍可保護端點不受垃圾郵件攻擊。 當使用OAuth的協力廠商整合服務存取Web API時,ReCAPTCHA會停用。

    • 下單店面頁面和付款相關網頁API。 預設會停用這些頁面的ReCAPTCHA保護,並可從管理員啟用。 此涵蓋範圍新增了反暴力機制,可保護存放區免受梳理攻擊。

NOTE
從2.3.2版開始,我們將指派並發佈索引式常見漏洞和暴露(CVE)編號,其中會包含外部各方回報給我們的每個安全性錯誤。 這可讓使用者更輕鬆地識別其部署中未解決的漏洞。 您可以在CVE進一步瞭解CVE識別碼。

基礎架構改良

此版本包含可改善框架品質的增強功能,以及下列功能區域:

  • 客戶帳戶

  • 目錄

  • CMS

  • OMS

  • 匯入/匯出

  • 促銷活動和目標定位

  • 購物車與結帳

  • B2B

  • 測試和預覽

包含PayPal的部署現在支援​ PayPal Pay Later。 此功能可讓購物者以雙週分期付款的方式支付訂單,而不需在購買時支付全額。

use_application_lock索引模式use_application_lock模式可讓您透過使用環境變數或透過設定app/etc/env.php檔案來啟用重新索引。 啟用此模式後,您就不需要在失敗後手動重設索引器。 請參閱使用應用程式鎖定模式重新索引處理序

平台增強功能

2.4.3版尚未與PHP 8.x相容,但後續的平台升級使我們更接近未來與PHP 8.x的相容性。

  • 核心撰寫器相依性和協力廠商程式庫已升級至與PHP 8.x相容的最新版本。

  • KnokoutJS資料庫已升級至v3.5.1 (最新版本)。

  • 已遭取代的TinyMCE v3程式庫已移除。 與TinyMCE v3.x相關的Magento_Tinymce3Banner模組和MFTF測試已從Adobe Commerce中移除。

  • Magento Open Source2.4.3已經過測試,並已確認與Redis 6.0.12相容。 (版本2.4.x仍與Redis 5.x相容。)

  • Laminas程式庫相依性已升級為PHP 8.x相容版本。 已從composer.json檔案中移除部分多餘的相依性。 Magento Open Source2.4.3使用Laminas 3.4.0

效能增強功能

此版本包含增強功能,可縮短產品價格和目錄規則索引器的索引時間。 商戶現在可以從客戶群組或共用目錄中排除網站,這減少了索引的記錄數量,並縮短了索引時間。

Adobe Stock整合

此版本包含Adobe Stock整合v2.1.1。

GraphQL

此版本新增共用路由的GraphQL涵蓋範圍。 路由查詢RoutableInterface支援產品、類別和CMS頁面上的路由要求。 urlResolver查詢已過時,其功能已由route查詢取代。

如需這些增強功能的詳細資訊,請參閱GraphQL開發人員指南

頁面產生器

Page Builder現在可作為Magento Open Source中的套件擴充功能使用。 它現在是Adobe Commerce 2.4.3和Magento Open Source 2.4.3的預設內容編輯工具。它可以用任何第三方模組取代WYSIWG編輯器。

「頁面產生器」會在下列「管理」區域中取代TinyMCE編輯器:

  • CMS頁面
  • CMS區塊
  • 類別說明
  • 產品說明

在TinyMCE中建立的所有內容已移轉至「頁面產生器」做為HTML。

PWA Studio

如需有關增強功能和錯誤修正的資訊,請參閱PWA Studio版本。 如需PWA Studio版本及其相容版本的清單,請參閱相容性

升級相容性工具

升級相容性工具的範圍已根據社群的意見展開。 加入我們的#upgrade-compatibility-toolSlack頻道,取得Adobe產品團隊和社群的支援,並幫助引導工具的未來方向。

廠商開發的擴充功能

請參閱下列文章,瞭解此版本功能和變更的更新:

已修正的問題

我們已修正2.4.3核心程式碼中的數百個問題。

安裝、升級、部署

  • bin/magento setup:db:status命令現在會傳回訊息,指出成功升級後一切都是最新狀態。 以前,應用程式顯示這個錯誤: Declarative Schema is not up to date
  • 現在,當建立新的可設定產品失敗時,會在表單重新載入時保留設定值。 先前,表單重新載入期間會遺失值,而應用程式會顯示此錯誤: The value specified in the URL Key field would generate a URL that already existsGitHub-32102
  • 當您執行bin/magento setup:upgrade從具有Redis的Magento Open Source部署升級至Adobe Commerce時,應用程式不再擲回例外狀況。
  • 在Galera叢集上執行的部署現在可支援更多客戶。 GitHub-31038
  • 當應用程式已經以—use-rewrites=0選項安裝,或在core_config_data_table中將web/seo/use_rewrites設定為0時,管理員現在可以成功登入部署。 GitHub-32100
  • 已更新AsyncCssPluginsortOrder載入。 應用程式現在會在JsFooterPlugin之前載入AsyncCssPluginGitHub-30882
  • Magento\Config\Model\Config\PathValidator現在會檢查顯示路徑以判斷專案是否存在,如果專案具有設定路徑,則會改用config.xml路徑進行驗證。 GitHub-27678
  • 使用Grunt或伺服器端編譯編譯來編譯較少檔案現在會產生相同的結果。 先前版本。 使用Grunt編譯時,延伸_extends.less中其他.abs- styles.abs- styles無法正確輸出。 這會導致生產部署與開發部署之間的差異。 GitHub-7231