Checkout schlägt fehl, wenn JS-Minimierung und -Bündelung aktiviert sind
Dieser Artikel enthält einen Patch für das Adobe Commerce-Problem, der verhindert, dass das Auschecken ordnungsgemäß funktioniert, wenn die Minimierung, Bündelung und (in einigen Fällen) das Zusammenführen von JavaScript (JS)-Assets aktiviert sind.
Beschreibung description
Umgebung
Adobe Commerce, alle Bereitstellungsmethoden.
Problem/Symptome
Jüngste Änderungen an der Funktion der Content Security Policy (CSP) haben dazu geführt, dass die Checkout-Funktion fehlschlägt, wenn die Minimierung, Bündelung und in einigen Fällen das Zusammenführen von JS-Assets aktiviert ist. Dieses Problem kann die Auftragserteilung in der Storefront vollständig blockieren.
Betroffene Produkte und Versionen
Magento Open Source und Adobe Commerce (alle Bereitstellungsmethoden):
- 2.4.4-P16
- 2.4.5-P15
- 2.4.6-P13
- 2.4.7-p8
- 2.4.8-p3
Schritte zur Reproduktion:
-
Stellen Sie sicher, dass das CSP-Modul aktiviert ist.
-
Wechseln Sie in den Produktionsmodus und aktivieren Sie die Minimierung und Bündelung von JS-Assets.
-
Statischen Inhalt bereitstellen und Cache leeren.
-
Navigieren Sie zur Storefront und versuchen Sie, eine Bestellung aufzugeben.
-
Suchen Sie in der Browser-Konsole bei jedem Schritt des Checkout-Flusses nach JS-Fehlern.
- Wenn Fehler auftreten oder das Auschecken explizit fehlschlägt, ist der Store betroffen.
- Wenn keine Fehler vorliegen und eine Bestellplatzierung möglich ist, überprüfen Sie, ob
mixins.min.jsauf der Seite Checkout vorhanden ist. Wennmixins.min.jsfehlt, der Checkout jedoch funktioniert, liegt ein Problem vor, das sich jedoch nicht sichtbar auf den Store auswirkt.
Ursache
Änderungen an der CSP-Funktion führten aufgrund falscher Dateipfade zu einer falschen Generierung von Subresource Integrity (SRI)-Hashes für minimierte JS-Dateien, wenn das Bundle aktiviert ist.
Dadurch wurde verhindert, dass mixins.min.js und static.min.js ordnungsgemäß auf der Seite Checkout“ gerendert wurden was zu verschiedenen Fehlern bei der Auftragserteilung führte.
Auflösung resolution
Stores, die mit einer der betroffenen Versionen ausgeführt werden, sollten den entsprechenden Patch anwenden, um das Problem zu beheben.
- Für Version 2.4.4-p16
- Für Version 2.4.5-p15
- Für die Versionen 2.4.6-p13 und 2.4.7-p8
- Für Version 2.4.8-p3
Diese Patches kehren die oben genannten CSP-bezogenen Änderungen um und stellen die CSP-Funktion in ihren Status vor diesen Änderungen wieder her.
Hinweis: Durch die Anwendung dieser Patches werden einige zuvor bekannte Probleme im Zusammenhang mit der SRI-Funktionalität wieder eingeführt:
- Ab Version 2.4.7-p8 werden SRI-Hashes erneut zwischengespeichert, anstatt in
sri-hashes.jsongespeichert zu werden. - Ab Version 2.4.8-p3 werden gebündelte/zusammengeführte JS-Assets nicht mehr einer Integritäts-Hash-Validierung unterzogen.
- Cloud-Instanzen in Version 2.4.8-p3 können fälschlicherweise
sri-hashes.json-Dateien generiert haben, die SRI-Hashes nur für einen Bruchteil der JS-Assets enthalten.
Anbringen des Pflasters
Entpacken Sie die Datei und lesen Sie Anleitung zum Anwenden eines von Adobe bereitgestellten ComposerPatches .