For the complete documentation index, see llms.txt. This page is also available as Markdown.

Content Security Policy (CSP)

Quelles règles CSP autoriser pour que la CMP Sirdata fonctionne entièrement ?

La Content Security Policy (CSP) est une règle de sécurité que votre site envoie au navigateur. Elle liste les domaines depuis lesquels la page a le droit de charger des scripts, des données (JSON), des polices, des images et des styles. Tout ce qui n'y figure pas est bloqué.

Si les domaines de la CMP n'y figurent pas, le navigateur bloque tout ou partie de la CMP.

✅ Reconnaître un blocage

Le symptôme dépend de la règle qui bloque :

Ce que vous constatez
Règle CSP en cause

La CMP ne s'affiche pas du tout

script-src

La bannière s'affiche, mais l'écran des activités (« Paramétrer vos choix ») est incomplet, ou des partenaires n'ont pas de nom

connect-src

La CMP s'affiche sans mise en forme

style-src

La CMP n'utilise pas la police choisie dans son thème

font-src

Le logo ou l'illustration de la CMP n'apparaît pas

img-src

Pour le confirmer, ouvrez la console du navigateur (touche F12, onglet Console). Chaque blocage y est signalé par un message de ce type :

Refused to connect to 'https://api.consentframework.com/api/v1/public/list/gvl/3?...' because it violates the following Content Security Policy directive: "connect-src ..."

⚙ Les règles à ajouter

Ajoutez ces sources à la suite de celles qui existent déjà dans votre CSP :

Règle
Sources à ajouter
Ce qu'elles autorisent

script-src

https://*.consentframework.com

les scripts de la CMP

connect-src

https://*.consentframework.com

les textes et la liste des partenaires (JSON), l'enregistrement des choix, les statistiques

font-src

https://*.consentframework.com

la police du thème de la CMP

img-src

data: https://*.consentframework.com https://cdn.sirdata.io

les icônes, les illustrations du thème, le logo téléversé dans la plateforme

style-src

'unsafe-inline'

la mise en forme de la CMP

Exemple (l'en-tête tient sur une seule ligne, les règles y sont séparées par ;) :

Ajoutez ces sources à vos règles actuelles, sans les remplacer. Si une règle est absente de votre CSP alors que default-src est présente, c'est default-src qui s'applique à sa place : ajoutez alors la règle manquante en entier.

Pourquoi *.consentframework.com ?

La CMP utilise plusieurs sous-domaines de consentframework.com, et le joker * les couvre tous. Si votre politique de sécurité interdit les jokers, voici le détail :

Domaine
Rôle
Règles

cache.consentframework.com

script stub

script-src

choices.consentframework.com

script cmp et son code, polices, illustrations

script-src font-src img-src

api.consentframework.com

textes et liste des partenaires (JSON), enregistrement des choix, statistiques

connect-src

mychoice.consentframework.com

consentement partagé entre plusieurs sites

connect-src

🧩 Cas particuliers

Votre CSP utilise un nonce ou 'strict-dynamic'

Ajoutez votre nonce aux balises de la CMP. Les scripts qu'elle charge ensuite sont autorisés par 'strict-dynamic'.

Votre style-src utilise un nonce ou un hash

Le navigateur ignore alors 'unsafe-inline', et la CMP s'affiche sans mise en forme : elle injecte ses styles sans nonce. style-src doit contenir 'unsafe-inline', sans nonce ni hash dans la même règle.

Vous conditionnez des scripts avec la CMP (data-cmp-src)

  • Les domaines des scripts que vous conditionnez doivent être autorisés dans votre CSP, comme s'ils étaient chargés directement.

  • Si vous conditionnez une fonction locale (data-cmp-src="maFonction", voir Conditionnement d'un script local), script-src doit contenir 'unsafe-eval'. Sans lui, la fonction n'est jamais exécutée.

La CMP est chargée par Google Tag Manager

Le modèle Sirdata charge la CMP depuis https://choices.consentframework.com : les règles ci-dessus suffisent pour la CMP. Google Tag Manager a ses propres exigences, décrites dans le guide CSP de Google.

Si vous renseignez un hôte first-party dans le modèle, ajoutez aussi https://cdn.sirdata.eu à script-src, et votre hôte comme indiqué ci-dessous.

Vous utilisez le conteneur GTM server-side de Sirdata

Votre sous-domaine server-side (par exemple metrics.votre-site.com) sert le code de Google Tag Manager et reçoit ses envois de mesure. Avec l'option Charger le CMP depuis l'hôte server-side, il sert aussi la CMP : ses scripts, ses textes, la liste des partenaires, ses polices et ses illustrations. Ajoutez-le à ces règles :

Règle
Source à ajouter
Ce qu'elle autorise

script-src

https://metrics.votre-site.com

le script d'intégration, Google Tag Manager et les scripts Google servis par le conteneur ; la CMP

connect-src

https://metrics.votre-site.com

les envois de mesure (Google Analytics…) ; les textes, la liste des partenaires et les statistiques de la CMP

img-src

https://metrics.votre-site.com

les envois de mesure sous forme d'image ; les illustrations de la CMP

font-src

https://metrics.votre-site.com

la police du thème de la CMP

frame-src

https://metrics.votre-site.com

l'iframe du service worker de Google, avec l'option Autoriser les Service Workers de Google

Quand la CMP est servie par le conteneur, gardez aussi :

  • data: et https://cdn.sirdata.io dans img-src : les icônes et le logo téléversé dans la plateforme ;

  • 'unsafe-inline' dans style-src : la mise en forme de la CMP ;

  • https://mychoice.consentframework.com dans connect-src, si le consentement est partagé entre plusieurs de vos sites.

Quand la CMP n'est pas servie par le conteneur, appliquez les règles de la CMP décrites plus haut (https://*.consentframework.com).

Les balises que Google Tag Manager charge depuis les domaines de Google (Google Ads, Floodlight, etc.) ont leurs propres exigences, décrites dans le guide CSP de Google.

La CMP est servie depuis votre propre domaine

Domaine de consentement, hôte first-party, CDN personnalisé : ajoutez ce domaine à script-src, connect-src, font-src et img-src. Gardez aussi https://*.consentframework.com : la CMP s'en sert en secours et pour certains appels.

Options qui chargent un script supplémentaire

Option
Source à ajouter
Règle

https://c.amazon-adsystem.com

script-src

Partenariat data Sirdata : la CMP charge le tag Sirdata après consentement

https://js.sddan.com

script-src

Le détail des cookies de chaque partenaire

Dans l'écran des partenaires, le lien plus des informations de stockage d'un partenaire IAB TCF charge un fichier JSON publié par ce partenaire, sur son propre domaine (par exemple privacy.criteo.com). Si connect-src bloque ce domaine, le panneau affiche « Informations non disponibles » ; le reste de la CMP fonctionne.

Pour l'afficher, ajoutez à connect-src les domaines de vos partenaires (la console du navigateur les liste quand vous ouvrez ces panneaux), ou https: si vous acceptez d'autoriser toutes les connexions HTTPS.

🔎 Tester et valider

Après modification, rechargez la page (Ctrl + Maj + R), puis ouvrez successivement la bannière, Paramétrer vos choix et l'écran des partenaires. La console ne doit plus afficher aucun message « Refused to … consentframework.com ».

🌟 TL;DR

  • CMP absente, écran des activités incomplet ou partenaires sans nom ✖ : votre CSP bloque tout ou partie de la CMP

  • Solution ✔ : ajoutez https://*.consentframework.com à script-src, connect-src, font-src et img-src, plus data: et https://cdn.sirdata.io à img-src, et 'unsafe-inline' à style-src

  • Conteneur GTM server-side de Sirdata : ajoutez aussi votre sous-domaine server-side à script-src, connect-src, img-src, font-src et frame-src

  • Où ? Dans l'en-tête HTTP Content-Security-Policy de votre site

  • Testez : la console du navigateur ne doit plus rien signaler 🚀

Si vous avez un doute, envoyez cette FAQ à votre développeur (il va comprendre tout de suite). Besoin d’aide ? On est là pour vous ! 💡

Mis à jour

Ce contenu vous a-t-il été utile ?