Oplossen van problemen bij het maken van een ordepagina in de beperkte modus van CSP
Dit artikel verstrekt verklaringen en moeilijke situaties voor Adobe Commerce 2.4.7 kwesties terwijl het creëren van een orde op Admin met CSP restricted mode wordt Toegelaten, met "Weigerd om inline 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.
Betrokken producten en versies
Adobe Commerce op cloudinfrastructuur, Adobe Commerce op locatie en Magento Open Source:
- 2.4.7.
- 2.4.6-pX
- 2.4.5-pX
- 2.4.4-pX
De kwestie - Admin creeert orde pagina is gebroken of kan niet laden
Admin creeert orde pagina is gebroken of kan niet laden, met "dat wordt geweigerd om inline 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:
- Ga naar Sales > Orders .
- Maak een nieuwe volgorde.
Verwachte resultaten :
Admin creeert orde pagina volledig laadt normaal.
Ware resultaten :
Admin creeert orde pagina is leeg of ontbrekende componenten. 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.
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 :
-
Whitelistde geblokkeerde manuscripten die de
SecureHtmlRenderer
klasse gebruiken. -
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
inMagento\Csp\Helper\CspNonceProvider
om een tekenreeks nonce te verkrijgen.code language-php 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(); } }
-
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:
- Ga naar Sales > Orders .
- Maak een nieuwe volgorde.
- Maak een nieuwe klant.
- Voer de klantgegevens in.
- Voer de bestelgegevens in (producten, verzendmethode).
- 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.
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 :
-
Whitelistde geblokkeerde manuscripten die de
SecureHtmlRenderer
klasse gebruiken. -
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
inMagento\Csp\Helper\CspNonceProvider
om een tekenreeks nonce te verkrijgen.code language-php 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(); } }
-
voeg a hashaan het dossier van uw module
csp_whitelist.xml
toe.
Probleem - Admin kan geen bestelling plaatsen
Admin kan geen orde op Admin voorleggen leidt tot ordepagina, 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:
- Ga naar Sales > Orders .
- Maak een nieuwe volgorde.
- Maak een nieuwe klant.
- Voer de klantgegevens in.
- Voer de bestelgegevens in (producten, verzendmethode).
- Selecteer een betalingsmethode.
- Verzend de bestelling.
Verwachte resultaten :
U kunt een bestelling verzenden.
Ware resultaten :
U kunt geen bestelling verzenden. 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.
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 :
-
Whitelistde geblokkeerde manuscripten die de
SecureHtmlRenderer
klasse gebruiken. -
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
inMagento\Csp\Helper\CspNonceProvider
om een tekenreeks nonce te verkrijgen.code language-php 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(); } }
-
voeg a hashaan het dossier van uw module
csp_whitelist.xml
toe.