¡Hola a todos!Seguramente instaló Magento 2.3.5 y encontró en las consolas de su navegador algo como[Solo informe] Se negó a cargar el script '***' porque viola la siguiente directiva de Política de seguridad de contenido: "script-src *". Tenga en cuenta que 'script-src-elem' no se configuró explícitamente, por lo que 'script-src' se usa como alternativa.
Te diré qué hacer debajo del corteIntroducción
A partir de la versión 2.3.5, apareció un módulo llamado Magento_CSP en Magento. Él es responsable de la Política de seguridad de contenido y, de hecho, agrega el encabezado Política de seguridad de contenido , o mejor dicho, mientras que Política de seguridad de contenido-Solo informe . Como siempre, a tiempo y bastante esperado, al elevar la versión "arreglada" :) Ya escribimos sobre
qué es la Política de seguridad de contenido y qué se come en Habré .La elección del encabezado Content-Security-Policy o Content-Security-Policy-Report-Only depende del proveedor de archivos de configuración / magento / module-csp / etc / config.xml por separado para el frente por separado para la parte de administración.<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<csp>
<mode>
<storefront>
<report_only>1</report_only>
</storefront>
<admin>
<report_only>1</report_only>
</admin>
</mode>
</csp>
</default>
</config>
En el mismo lugar en la directiva "report_uri" se podría establecer la URL para el informe, pero desde no está allí, luego Chrome cambia la consola sin piedad con un mensaje sobre su ausencia.
Texto de error de muestraThe Content Security Policy 'font-src 'self' 'unsafe-inline'; form-action secure.authorize.net test.authorize.net geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com 'self' 'unsafe-inline'; frame-ancestors 'self' 'unsafe-inline'; frame-src secure.authorize.net test.authorize.net geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com
www.paypal.com www.sandbox.paypal.com 'self' 'unsafe-inline'; img-src widgets.magentocommerce.com
www.googleadservices.com www.google-analytics.com t.paypal.com
www.paypal.com www.paypalobjects.com fpdbs.paypal.com fpdbs.sandbox.paypal.com *.vimeocdn.com s.ytimg.com 'self' 'unsafe-inline'; script-src assets.adobedtm.com secure.authorize.net test.authorize.net geostag.cardinalcommerce.com 1eafstag.cardinalcommerce.com geoapi.cardinalcommerce.com 1eafapi.cardinalcommerce.com songbird.cardinalcommerce.com includestest.ccdc02.com js.authorize.net jstest.authorize.net
www.googleadservices.com www.google-analytics.com www.paypal.com www.sandbox.paypal.com www.paypalobjects.com t.paypal.com js.braintreegateway.com s.ytimg.com video.google.com vimeo.com
www.vimeo.com cdn-scripts.signifyd.com
www.youtube.com 'self' 'unsafe-inline' 'unsafe-eval'; style-src getfirebug.com 'self' 'unsafe-inline'; object-src 'self' 'unsafe-inline'; media-src 'self' 'unsafe-inline'; manifest-src 'self' 'unsafe-inline'; connect-src geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com 'self' 'unsafe-inline'; child-src 'self' 'unsafe-inline'; default-src 'self' 'unsafe-inline' 'unsafe-eval'; base-uri 'self' 'unsafe-inline';' was delivered in report-only mode, but does not specify a 'report-uri'; the policy will have no effect. Please either add a 'report-uri' directive, or deliver the policy via the 'Content-Security-Policy' header.
¿Cómo agregar su URL a la política?
Cree un archivo en la raíz de la carpeta / etc / module con el nombre csp_whitelist.xml y contenido<?xml version="1.0" encoding="UTF-8"?>
<csp_whitelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Csp:etc/csp_whitelist.xsd">
<policies>
<policy id="POLICY_ID">
<values>
<value id="VALUE_ID" type="TYPE" algorithm="ALGORITHM">SOME DOMAIN</value>
</values>
</policy>
</policies>
</csp_whitelist>
donde POLICY_ID es uno de:- default-src
- script-src
- object-src
- style-src
- img-src
- media-src
- frame-src
- font-src
- connect-src
VALUE_ID - un nombre único arbitrarioTYPE - type, puede tomar el dominio de valores o hashALGORITHM - algoritmo hash (con TYPE = hash), por ejemplo sha256Veamos ejemplos de la prueba de integración de Magento :<?xml version="1.0"?>
<csp_whitelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Csp/etc/csp_whitelist.xsd">
<policies>
<policy id="object-src">
<values>
<value id="mage-base" type="host">https://magento.com</value>
<value id="hash" type="hash" algorithm="sha256">B2yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8=</value>
<value id="hash2" type="hash" algorithm="sha256">B3yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8=</value>
</values>
</policy>
<policy id="media-src">
<values>
<value id="mage-base" type="host">https://magento.com</value>
<value id="devdocs-base" type="host">https://devdocs.magento.com</value>
</values>
</policy>
</policies>
</csp_whitelist>