В этой статье мы расскажем о стандарте Content Security Policy (CSP) и о том, как интегрировать его в код объявлений AdSense. Издателям не обязательно использовать CSP. Если вы хотите интегрировать CSP, выполните указанные ниже действия и убедитесь, что код AdSense работает корректно.
Что такое CSP
Content Security Policy (CSP) позволяет ограничить ресурсы и скрипты, которые загружаются и выполняются на веб-странице, и таким образом обеспечить защиту. Включить CSP можно с помощью заголовка Content-Security-Policy
в HTTP-ответах с вашего сервера.
Есть два стандартных способа конфигурации:
- Составить белый список доменов, которые могут внедрять свои ресурсы на страницу.
- Добавить случайное одноразовое число, которым должны быть помечены загружаемые ресурсы. Этот вариант называют строгим.
Поскольку домены, которые используются в коде объявлений AdSense, со временем меняются, мы поддерживаем только второй вариант (строгий), Вам не нужно постоянно следить за белым списком доменов, который может устаревать и нарушать работу сайта.
Как настроить строгий CSP в коде объявлений AdSense
Чтобы включить CSP на своем веб-сервере, выполните действия из раздела Примите строгий CSP. Там описано, как настроить заголовок и применить одноразовое случайное число для каждого тега скрипта на странице, в том числе для кода AdSense. Для кода AdSense поддерживаются следующие директивы 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/
Сильно ограничивать правила не обязательно, можно уменьшить количество критериев. Правила со множеством ограничений могут перестать работать без уведомления.
Пример кода
Вот пример кода AdSense со строгим CSP:
<script nonce="${nonce}" async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=i-gno/re-d1234&host=ca-host-pub-5678" crossorigin="anonymous">
</script>
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="i-gno/re-d1234"
data-ad-host="ca-host-pub-5678">
</ins>
<script nonce="${nonce}">
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
Тестирование
Рекомендуем сначала протестировать правила. Для этого воспользуйтесь заголовком Content-Security-Policy-Report-Only
вместо Content-Security-Policy
. C этим заголовком вы увидите нарушения как в отчете, так и на самой странице.