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:

  1. Asegúrese de que el módulo CSP esté habilitado.

  2. Cambie al modo de producción y habilite la minificación y el agrupamiento de recursos JS.

  3. Implemente contenido estático y vacíe la caché.

  4. Vaya a la tienda e intente realizar un pedido.

  5. 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.js está presente en la página Finalizar compra. Si falta mixins.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.

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.json archivos 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.

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