Politiques de Sécurité de Contenu
Les Politiques de SĂ©curitĂ© de Contenu (CSP) sont envoyĂ©es sous forme d'en-tĂȘte au navigateur de vos utilisateurs par votre serveur web. Elles sont utilisĂ©es pour dĂ©clarer quelles ressources dynamiques sont autorisĂ©es Ă se charger sur votre page.
Pour de nombreux sites web, cela implique souvent de déclarer que seuls les scripts et les styles de votre propre domaine et ceux de tous les outils que vous utilisez sont autorisés. Cependant, cela peut devenir plus problématique lorsque des configurations plus complexes sont en jeu.
Si vous identifiez des erreurs CSP sur votre site similaires à celles montrées ci-dessous, alors votre équipe de développement ou votre fournisseur d'hébergement devra ajuster vos paramÚtres CSP.
Ajuster vos paramĂštres CSP
1. Vérifier s'il y a des erreurs CSP.
Si vous rencontrez des problĂšmes avec les statistiques et les consentements dans le back-office d'Axeptio, cela peut parfois ĂȘtre causĂ© par une erreur CSP. Vous pouvez vĂ©rifier ces erreurs dans la console de dĂ©veloppement de votre navigateur. Vous pouvez apprendre comment ouvrir la console en suivant les Ă©tapes dans ce guide.
S'il y a un problÚme de Politique de Sécurité de Contenu, vous verrez une erreur similaire à celle ci-dessous :
2. Consultez votre développeur web ou votre fournisseur d'hébergement pour ajuster les paramÚtres CSP.
Comme tous les serveurs sont différents, l'équipe de support d'Axeptio ne sera pas en mesure d'aider à résoudre ces problÚmes au-delà de l'identification d'une erreur CSP. Lors de la modification de vos Politiques de Sécurité de Contenu, la meilleure personne à contacter est votre développeur web, ou celui qui gÚre votre site web.
3. Choisir quels paramĂštres CSP ajuster.
Si vous utilisez une CSP par défaut, alors l'ajout de ce qui suit à vos rÚgles de default-src sera suffisant.
Les "..." dans les exemples ci-dessous sont des espaces réservés pour toutes les rÚgles existantes que vous pourriez avoir en place :
default-src ... https://.axept.io https://.axeptio.eu https://axeptio.imgix.net https://*.gstatic.com 'unsafe-inline'
Si vous voulez des restrictions plus strictes, nous recommandons le modÚle ci-dessous pour assurer que vos politiques seront plus résistantes à l'avenir alors que nous étendons nos services. Voici un exemple de ce à quoi cela pourrait ressembler :
default-src ⊠'unsafe-inline'
script-src ⊠https://*.axept.io 'unsafe-inline'
connect-src ⊠https://*.axept.io https://*.axeptio.eu https://*.axeptio.tech
img-src ⊠https://axeptio.imgix.net https://*.axept.io https://*.gstatic.com
media-src ⊠https://axeptio-videos.imgix.net
font-src ⊠https://fonts.axept.io
Si vos CSP nécessitent plus de granularité, alors voici les autorisations de sécurité minimales absolues que vous devez ajouter à votre serveur web pour permettre à Axeptio de fonctionner correctement sur votre site :
script-src ⊠https://static.axept.io 'unsafe-inline'
connect-src ⊠https://*.axept.io https://*.axeptio.eu https://*.axeptio.tech
img-src ⊠https://axeptio.imgix.net https://favicons.axept.io https://*.gstatic.com
media-src ⊠https://axeptio-video.imgix.net
font-src ⊠https://fonts.axept.io
Utilisation dâun nonce
Pour protĂ©ger votre site web contre lâexĂ©cution de code inattendue, vous pouvez vous appuyer sur lâattribut Nonce afin dâidentifier et de limiter lâexĂ©cution des scripts uniquement Ă ceux autorisĂ©s. Cela permet dâempĂȘcher lâexĂ©cution de code malveillant. LâintĂ©gration du widget Axeptio prend en charge lâattribut Nonce et peut ĂȘtre configurĂ©e facilement Ă lâaide du code dâintĂ©gration.
Configurez votre ID de nonce dans lâen-tĂȘte HTTP des pages de votre site web et rĂ©utilisez-le comme attribut pour chaque script exĂ©cutĂ© sur la page.
<?php
$nonce = base64_encode(random_bytes(18));
header("Content-Security-Policy: default-src 'self'; script-src 'strict-dynamic' 'nonce-" . $nonce . "' https:");
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>CSP Nonce</title>
<script type="text/javascript" nonce="<?= $nonce ?>" src="..."></script>
</head>
<body>
<script type="text/javascript" nonce="<?= $nonce ?>">
myFunction();
</script>
</body>
</html>
2. Le widget Axeptio est un script chargĂ© sur votre site web. Il vous suffit dâajouter lâattribut nonce gĂ©nĂ©rĂ© au script dâintĂ©gration et de lâassocier Ă un attribut dĂ©diĂ© axeptioSettings, chargĂ© de propager la valeur du nonce Ă lâensemble des composants gĂ©rĂ©s par le widget Axeptio.
<!-- Intégrez votre script JS ici -->
<script nonce=$nonce>
window.axeptioSettings = {
clientId: "axeptio-client-id",
cookiesVersion: "axeptio--cookie-version",
nonce: $nonce
};
(function(d, s) {
var t = d.getElementsByTagName(s)[0], e = d.createElement(s);
e.async = true;
e.src = "https://static.axept.io/sdk.js";
t.parentNode.insertBefore(e, t);
})(document, "script");
</script>
DĂ©sormais, tout le contenu HTML inline gĂ©nĂ©rĂ© par le widget Axeptio est validĂ© via lâattribut nonce et ne dĂ©clenche plus dâerreur unsafe-inline.
