Utcheckningen misslyckas när JS-miniatyr och paketering är aktiverat

I den här artikeln finns en patch för Adobe Commerce-problemet som förhindrar att utcheckningen fungerar korrekt när minification, bundling och (i vissa fall) merging av JavaScript (JS)-resurser är aktiverade.

Beskrivning description

Miljö

Adobe Commerce, alla distributionsmetoder.

Problem/symtom

De senaste ändringarna av CSP-funktionen (Content Security Policy) har gjort att utcheckningsfunktionen inte fungerar när minification, bundling och, i vissa fall, sammanfogning av JS-resurser har aktiverats. Den här utgåvan kan helt blockera orderplaceringen på butiken.

Berörda produkter och versioner

Magento Open Source och Adobe Commerce (alla distributionsmetoder):

  • 2.4.4-p16
  • 2.4.5-p15
  • 2.4.6-p13
  • 2.4.7-p8
  • 2.4.8-p3

Steg som ska återskapas:

  1. Kontrollera att CSP-modulen är aktiverad.

  2. Växla till produktionsläge och aktivera miniatyr- och paketering av JS-resurser.

  3. Distribuera statiskt innehåll och tömma cache.

  4. Navigera till butiken och försök att lägga en order.

  5. Kontrollera om det finns JS-fel i webbläsarkonsolen under varje steg i utcheckningsflödet.

    • Om fel uppstår eller utcheckningen misslyckas explicit påverkas arkivet.
    • Om det inte finns några fel och det går att placera beställningar kontrollerar du om mixins.min.js finns på sidan Utcheckning. Om mixins.min.js saknas, men utcheckningen fungerar, finns problemet men det påverkar inte butiken.

Orsak

Ändringar i CSP-funktionen resulterade i felaktig generering av SRI-hashar (Subresource Integrity) för minifierade JS-filer när paketering är aktiverat på grund av felaktiga filsökvägar.

Detta förhindrade i sin tur mixins.min.js och static.min.js från att återges korrekt på sidan Utcheckning, vilket orsakade olika fel under orderplaceringen.

Upplösning resolution

Lager som körs på någon av de berörda versionerna bör använda motsvarande korrigeringsfil för att lösa problemet.

Dessa korrigeringar inverterar de CSP-relaterade ändringar som nämns ovan och återställer CSP-funktionen till dess tillstånd innan dessa ändringar.

Obs! Om du använder dessa korrigeringar återinförs vissa tidigare kända problem som rör SRI-funktionen:

  • I version 2.4.7-p8 och tidigare cachelagras SRI-hash igen i stället för att lagras i sri-hashes.json.
  • I version 2.4.8-p3 och tidigare kommer inte paketerade/sammanfogade JS-resurser att genomgå någon hash-validering av integriteten.
  • Molninstanser i version 2.4.8-p3 kan ha felaktigt genererade sri-hashes.json filer som innehåller SRI-hash-värden endast för en bråkdel av JS-resurserna.

Så här sätter du på plåstret

Zippa upp filen och se Använda en kompositkorrigering från Adobe för mer information.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f