Integrar en una política de seguridad de contenido

La Política de seguridad de contenido (CSP) es un medio para proteger tu página web, ya que limita los recursos y secuencias de comandos que se pueden cargar y ejecutar. Puedes habilitar la CSP si configuras un encabezado Content-Security-Policy en las respuestas HTTP de tu servidor web.

Hay dos formas estándar de configurar la CSP:

  1. Especifica una lista de dominios permitidos para los dominios que puedan insertar sus recursos en la página.

  2. Especifica un nonce aleatorio, con el que se deben marcar los recursos de la página para que se cargue. Este enfoque se conoce como CSP estricto.

Debido a que los dominios que usa Google Publisher Tag (GPT) cambian con el tiempo, solo admitimos CSP estricto (opción 2). Con este enfoque, se quita la necesidad de mantener una lista progresiva de dominios que podrían quedar desactualizados y dañar tu sitio.

Cómo configurar CSP con GPT

  1. Habilita CSP en tu servidor web.

    Sigue los pasos descritos en Adopción de CSP estricta para configurar el encabezado de CSP y aplicar el nonce a cada etiqueta de secuencia de comandos en tu página, incluido gpt.js. GPT admite específicamente las siguientes directivas de 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/
    

    Puedes elegir una política más permisiva si se ajusta a tu caso práctico. Las políticas más restrictivas pueden romperse sin previo aviso.

  2. Habilitar el procesamiento multidominio.

    Los iframes de anuncio pueden cargar recursos externos que el CSP no permite. Dado que los iframes del mismo dominio heredan el CSP de la ventana de nivel superior, y GPT no puede controlar el contenido de la creatividad, las creatividades del mismo dominio, por lo general, no funcionarán correctamente con los encabezados de CSP.

    A fin de habilitar el procesamiento multidominio para todas las creatividades, ejecuta googletag.pubads().setForceSafeFrame(true) antes de cargar cualquier espacio publicitario.

    <!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>
    

Prueba

Te recomendamos que pruebes las políticas primero mediante la configuración del encabezado Content-Security-Policy-Report-Only en lugar de la Content-Security-Policy. El encabezado informa incumplimientos, pero los permite en la página.