Oorzaak

In Adobe Commerce en Magento Open Source versie 2.4.7 en hoger is CSP standaard geconfigureerd in restrict-mode , voor betalingspagina's in de opslagruimte en in de beheergebieden, en in de report-only -modus voor alle andere pagina's.
De corresponderende header CSP bevat niet het trefwoord unsafe-inline binnen de aanwijzing script-src voor betaalpagina's. Bovendien zijn alleen whitelisted inlinescripts toegestaan.

Oplossing

Gebruikers zien mogelijk browserfouten omdat bepaalde scripts zijn geblokkeerd door CSP :

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src

om deze kwestie te bevestigen, moet u één van beide :

  1. Whitelistde geblokkeerde manuscripten die de SecureHtmlRenderer klasse gebruiken.

  2. Gebruik de klasse CSPNonceProvider om toe te staan dat scripts worden uitgevoerd.
    Adobe Commerce en Magento Open Source 2.4.7 en hoger bevatten een Content Security Policy (CSP) nonce -provider om het genereren van unieke nonce -tekenreeksen voor elke aanvraag te vergemakkelijken. Deze nonce -tekenreeksen worden vervolgens aan de CSP -koptekst gekoppeld.

    Gebruik de functie generateNonce in Magento\Csp\Helper\CspNonceProvider om een tekenreeks nonce te verkrijgen.

    use Magento\Csp\Helper\CspNonceProvider;
    
    class MyClass
    {
    
        /**
         * @var CspNonceProvider
         */
        private $cspNonceProvider;
    
        /**
         * @param CspNonceProvider $cspNonceProvider
         */
        public function __construct(CspNonceProvider $cspNonceProvider)
        {
            $this->cspNonceProvider = $cspNonceProvider
        }
    
        /**
         * Get CSP Nonce
         *
         * @return String
         */
        public function getNonce(): string
        {
            return $this->cspNonceProvider->generateNonce();
        }
    }
    
  3. voeg a hashaan het dossier van uw module csp_whitelist.xml toe.

Uitgave - Betalingsmethode ontbreekt of werkt niet

De betalingsmethode ontbreekt of werkt niet aan Admin orde leidt tot pagina, met "die wordt geweigerd om gealigneerd manuscript uit te voeren omdat het de volgende richtlijn van het Beleid van de Veiligheid van de Inhoud schendt: "manuscript-src…"foutenmelding in het browser consolelogboek.

Stappen om te reproduceren:

  1. Ga naar Sales > Orders .
  2. Maak een nieuwe volgorde.
  3. Maak een nieuwe klant.
  4. Voer de klantgegevens in.
  5. Voer de bestelgegevens in (producten, verzendmethode).
  6. Selecteer een betalingsmethode.

Verwachte resultaten :

U kunt een betalingsmethode selecteren en doorgaan met het plaatsen van een bestelling.

Ware resultaten :

De betalingsmethode ontbreekt of werkt niet. De volgende JS fout wordt getoond in het browser consolelogboek: "die wordt geweigerd om gealigneerd manuscript uit te voeren omdat het de volgende richtlijn van het Beleid van de Veiligheid van de Inhoud overtreedt: "manuscript-src…".

Oorzaak

In Adobe Commerce en Magento Open Source versie 2.4.7 en hoger is CSP standaard geconfigureerd in restrict-mode , voor betalingspagina's in de opslagruimte en in de beheergebieden, en in de report-only -modus voor alle andere pagina's.
De corresponderende header CSP bevat niet het trefwoord unsafe-inline binnen de aanwijzing script-src voor betaalpagina's. Bovendien zijn alleen whitelisted inlinescripts toegestaan.