Integrazione con un criterio di sicurezza del contenuto

I Criteri di sicurezza del contenuto (CSP) consentono di proteggere la pagina web limitando le risorse e gli script che è possibile caricare ed eseguire. Puoi abilitare CSP impostando un'intestazione Content-Security-Policy nelle risposte HTTP dal tuo server web.

Esistono due modi standard per configurare CSP:

  1. Specifica una lista consentita di domini che possono inserire le relative risorse nella pagina.

  2. Specifica un nonce casuale con cui contrassegnare le risorse sulla pagina per poter essere caricate. Questo approccio è noto come CSP rigoroso.

Poiché i domini utilizzati dal Tag publisher di Google (GPT) utilizzano i cambiamenti nel tempo, supportiamo solo CSP rigoroso (opzione 2). Questo approccio elimina la necessità di gestire un elenco continuativo di domini che potrebbero diventare obsoleti e che compromettono il sito.

Configurazione di CSP con GPT

  1. Attiva CSP sul tuo server web.

    Segui i passaggi descritti in Adottare un CSP rigoroso per impostare l'intestazione CSP e applicare il nonce a ogni tag script nella pagina, incluso gpt.js. GPT supporta specificatamente le seguenti istruzioni CSP:

    Content-Security-Policy:
      object-src 'none';
      script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
      base-uri 'none';
      report-uri https://your-report-collector.example.com/
    

    Puoi scegliere norme più permissive, se adatte al tuo caso d'uso. I criteri più restrittivi potrebbero non funzionare senza preavviso.

  2. Attivare il rendering interdominio.

    Gli iframe degli annunci possono caricare risorse esterne che potrebbero non essere consentite dal CSP. Poiché gli stessi iframe di dominio ereditano il CSP della finestra di primo livello e GPT non può controllare i contenuti della creatività, le creatività dello stesso dominio in genere non funzionano correttamente con le intestazioni CSP.

    Per attivare il rendering interdominio per tutte le creatività, esegui googletag.pubads().setForceSafeFrame(true) prima di caricare eventuali aree annuncio.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

Test

Ti consigliamo di testare prima i criteri impostando l'intestazione Content-Security-Policy-Report-Only anziché Content-Security-Policy. L'intestazione segnala le violazioni, ma le consente comunque nella pagina.