La desprotección falla cuando la minificación y el agrupamiento de JS están habilitados
Este artículo proporciona un parche para el problema de Adobe Commerce que impide que la desprotección funcione correctamente cuando la minificación, el agrupamiento y (en algunos casos) la combinación de recursos de JavaScript (JS) están habilitados.
Descripción description
Entorno
Adobe Commerce, todos los métodos de implementación.
Problema/Síntomas
Los cambios recientes en la función de la política de seguridad de contenido (CSP) han provocado que la funcionalidad de cierre de compra falle cuando la minificación, el agrupamiento y, en algunos casos, la combinación de recursos JS están habilitados. Este problema puede bloquear completamente la colocación de pedidos en la tienda.
Productos y versiones afectados
Magento Open Source y Adobe Commerce (todos los métodos de implementación):
- 2.4.4-p16
- 2,4,5-p15
- 2,4,6-p13
- 2.4.7-p8
- 2,4,8-p3
Pasos a seguir:
-
Asegúrese de que el módulo CSP esté habilitado.
-
Cambie al modo de producción y habilite la minificación y el agrupamiento de recursos JS.
-
Implemente contenido estático y vacíe la caché.
-
Vaya a la tienda e intente realizar un pedido.
-
Compruebe los errores de JS en la consola del explorador durante cada paso del flujo de cierre de compra.
- Si hay errores o la desprotección falla explícitamente, el almacén se ve afectado.
- Si no hay errores y es posible colocar el pedido, compruebe si
mixins.min.jsestá presente en la página Finalizar compra. Si faltamixins.min.js, pero el cierre de compra funciona, el problema existe, pero no afecta visiblemente a la tienda.
Causa
Los cambios en la función CSP provocaban una generación incorrecta de hashes SRI (Integridad de subrecursos) para archivos JS minificados cuando el agrupamiento estaba habilitado, debido a rutas de archivo incorrectas.
Esto, a su vez, impidió que mixins.min.js y static.min.js se representaran correctamente en la página Cierre de compra, lo que provocó varios errores durante la colocación de la solicitud.
Resolución resolution
Las tiendas que se ejecuten en cualquiera de las versiones afectadas deben aplicar el parche correspondiente para resolver el problema.
- Para la versión 2.4.4-p16
- Para la versión 2.4.5-p15
- Para las versiones 2.4.6-p13 y 2.4.7-p8
- Para la versión 2.4.8-p3
Estos parches revierten los cambios relacionados con el CSP mencionados anteriormente y restauran la función CSP a su estado antes de dichos cambios.
Nota: La aplicación de estos parches reintroduce algunos problemas conocidos anteriormente relacionados con la funcionalidad de la SRI:
- En las versiones 2.4.7-p8 y posteriores, los hashes SRI se almacenarán de nuevo en la caché en lugar de almacenarse en
sri-hashes.json. - En las versiones 2.4.8-p3 y posteriores, los recursos JS agrupados/combinados no se someterán a la validación de hash de integridad.
- Las instancias de nube de la versión 2.4.8-p3 pueden tener
sri-hashes.jsonarchivos generados incorrectamente que contienen hashes SRI solo para una fracción de recursos JS.
Cómo aplicar el parche
Descomprima el archivo y consulte Cómo aplicar un parche del compositor proporcionado por Adobe para obtener más instrucciones.