Интеграция с политикой безопасности контента

Политика безопасности контента (CSP) — это средство защиты вашей веб-страницы путем ограничения того, какие ресурсы и сценарии разрешено загружать и выполнять. Вы можете включить CSP, установив заголовок Content-Security-Policy в ответах HTTP с вашего веб-сервера.

Существует два стандартных способа настройки CSP:

  1. Укажите белый список доменов, которые могут внедрять свои ресурсы на страницу.

  2. Укажите случайный одноразовый номер, которым должны быть отмечены ресурсы на странице для загрузки. Этот подход известен как строгий CSP .

Поскольку домены, которые использует Google Publisher Tag (GPT), со временем меняются, мы поддерживаем только строгое CSP (вариант 2). Такой подход избавляет от необходимости поддерживать скользящий список доменов, которые могут устареть и нарушить работу вашего сайта.

Настройка CSP с GPT

  1. Включите CSP на своем веб-сервере.

    Выполните шаги, описанные для перехода на строгую CSP , чтобы настроить заголовок CSP и применить одноразовый номер к каждому тегу скрипта на вашей странице, включая gpt.js . GPT специально поддерживает следующие директивы 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/
    

    Вы можете выбрать более разрешительную политику, если она соответствует вашему варианту использования. Более строгие правила могут быть нарушены без предварительного уведомления.

  2. Включите междоменный рендеринг.

    Рекламные фреймы могут загружать внешние ресурсы, которые могут быть запрещены CSP. Поскольку iframe одного и того же домена наследуют CSP окна верхнего уровня, а GPT не может контролировать содержимое объявления, объявления того же домена, как правило, не будут корректно работать с заголовками CSP.

    Чтобы включить междоменный рендеринг для всех креативов, выполните googletag.pubads().setForceSafeFrame(true) перед загрузкой любых рекламных мест.

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

Тестирование

Мы рекомендуем сначала протестировать свои политики, установив заголовок Content-Security-Policy-Report-Only вместо Content-Security-Policy . Заголовок сообщает о нарушениях, но все же разрешает их на странице.