Uitchecken mislukt als JS-miniatuur en -bundeling zijn ingeschakeld
Dit artikel bevat een patch voor de Adobe Commerce-uitgave die ervoor zorgt dat afhandeling niet correct werkt wanneer minificatie, bundeling en (in sommige gevallen) samenvoeging van JavaScript-elementen (JS) zijn ingeschakeld.
Beschrijving description
Omgeving
Adobe Commerce, alle implementatiemethoden.
Probleem/symptomen
Recente wijzigingen in de functie Content Security Policy (CSP) hebben ertoe geleid dat de uitcheckfunctionaliteit is mislukt wanneer minificatie, bundeling en, in sommige gevallen, samenvoeging van JS-elementen zijn ingeschakeld. Dit probleem kan de plaatsing van bestellingen in de winkel volledig blokkeren.
Betrokken producten en versies
Magento Open Source en Adobe Commerce (alle implementatiemethoden):
- 2.4.4-p16
- 2.4.5-p15
- 2.4.6-p13
- 2.4.7-p8
- 2.4.8-p3
Stappen om te reproduceren:
-
Zorg ervoor dat de CSP-module is ingeschakeld.
-
Schakel over naar de productiemodus en schakel minificatie en bundeling van JS-elementen in.
-
Statische inhoud implementeren en cache leegmaken.
-
Navigeer naar de storefront en probeer een bestelling te plaatsen.
-
Controleer tijdens elke stap van de uitcheckflow op JS-fouten in de browserconsole.
- Als er fouten zijn of de controle uitdrukkelijk ontbreekt, wordt de opslag beïnvloed.
- Als er geen fouten zijn en de ordeplaatsing mogelijk is, verifieer als
mixins.min.jsop de controle pagina aanwezig is. Alsmixins.min.jsontbreekt, maar uitchecken werkt - het probleem bestaat, maar heeft geen zichtbare invloed op de winkel.
Oorzaak
Wijzigingen in de CSP-functie resulteerden in een onjuiste genereren van SRI-hashes (Subresource Integrity) voor geminificeerde JS-bestanden wanneer het maken van pakketten is ingeschakeld, als gevolg van onjuiste bestandspaden.
Dit, beurtelings, verhinderde mixins.min.js en static.min.js om behoorlijk op de controle pagina terug te geven, veroorzakend diverse mislukkingen tijdens orderplaatsing.
Resolutie resolution
Opgeslagen winkels die op een van de betrokken versies worden uitgevoerd, moeten de bijbehorende patch toepassen om het probleem op te lossen.
- voor versie 2.4.4-p16
- voor versie 2.4.5-p15
- voor versies 2.4.6-p13 en 2.4.7-p8
- voor versie 2.4.8-p3
Deze patches keren de hierboven vermelde wijzigingen met betrekking tot het CDV om en herstellen de CSP-functie naar de status vóór die wijzigingen.
Nota: die deze flarden toepast herintroduceert sommige eerder bekende kwesties met betrekking tot functionaliteit SRI:
- Bij versies 2.4.7-p8 en lager worden SRI-hashes opnieuw in de cache opgeslagen in
sri-hashes.json. - In versies 2.4.8-p3 en lager worden gebundelde/samengevoegde JS-elementen niet gevalideerd voor integriteitshashes.
- Cloud-instanties op versie 2.4.8-p3 kunnen onjuist gegenereerde
sri-hashes.jsonbestanden hebben die alleen voor een fractie van JS-elementen SRI-hashes bevatten.
Hoe de pleister aanbrengen
Pak het dossier uit en verwijs naar hoe te om een componentenflard toe te passen die door Adobe voor verdere instructies wordt verstrekt.