Content Security Policy

Реклама
заказажи текст

CSP — политика защиты контента

Content Security Policy (CSP, политика защиты контента) — это механизм обеспечения безопасности, с помощью которого можно защищаться от атак с внедрением контента, например, межсайтового скриптинга (XSS, cross site scripting) и встроенной в приложения для браузеров рекламы, по которым кликают юзеры. Все эти переходы в большинстве происходят по рекламе которую пользователь видит на ваших сайтах. Как стало всем известно, видит он её потому что приложения браузера были заражены вирусом и вместо вашей белой реклы он видит подменную рекламу мошенников, которая конечно ведет на мутные сайты.

CSP описывает безопасные источники загрузки ресурсов, устанавливает правила использования встроенных стилей, скриптов, а также динамической оценки JavaScript — например, с помощью eval. Загрузка с ресурсов, не входящих в «белый список», блокируется.

Для использования политики страница должна содержать HTTP-заголовок Content-Security-Policy с одной и более директивами, которые представляют собой «белые списки». Директивы заголовка CSP:

  • default-src — в этой директиве задаются белые списки хостов, которые будут автоматически присвоены не заданным директивам
  • script-src — белый список хостов с которых разрешается загрузка javascript
  • object-src — белый список хостов с которых разрешается загрузка Flash-подобных плагинов
  • style-src — белый список хостов с которых разрешается загрузка css
  • img-src — белый список хостов с которых разрешается загрузка картинок
  • media-src — белый список хостов с которых разрешается загрузка аудио и видео
  • frame-src — белый список хостов с которых разрешается загрузка iframe’ов
  • font-src — белый список хостов с которых разрешается загрузка шрифтов
  • connect-src — специальные директивы для XMLHttpRequest, WebSocket и EventSource. Обратите внимание, что для каждой из этих директив задаётся список не урлов, а хостов, с которыми разрешено общаться браузеру
  • report-uri Url, на который будет отсылаться JSON-отчёт о нарушениях политики (опционален, его можно и не размещать)
 

Ключевые слова для указания хостов (задаются в кавычках):

  • ‘self’ — определяет текущий хост
  • ‘none’ — запрещает всё
  • ‘unsafe-inline’ — используется только в директивах script-src и style-src. Разрешает выполнять inline-скрипты на странице. Не рекомендую использвать это ключевое слово, т.к. это развязывает руки злоумышленнику и даёт право исполнять любые инлайновые скрипты на странице — это дыра в безопасности
  • ‘unsafe-eval’ Используется только в script-src и разрешает кодогенерацию, например: eval, new Function, setTimeout(‘var foo = «bar» ‘, 7)
 

Основной код политики защиты контента, который размещается в файле htaccess, следующий:

#Header set Content-Security-Policy-Report-Only
<IfModule mod_headers.c>
Header set Content-Security-Policy " "
</IfModule>
 

Пример CSP кода для соцсетей, поисковых систем, партнерок Яндекса и Гугль:

<ifModule mod_headers.c>
Header set Content-Security-Policy "\
default-src 'self';\
connect-src 'self' *.google-analytics.com https://*.google-analytics.com *.googlevideo.com https://*.googlevideo.com google-analytics.com https://google-analytics.com youtube.com https://youtube.com ytimg.com https://ytimg.com *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
font-src 'self' *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;\
frame-src 'self' *.doubleclick.net https://*.doubleclick.net *.googleadservices.com https://*.googleadservices.com *.googlesyndication.com https://*.googlesyndication.com rutube.ru https://rutube.ru vk.com https://vk.com yandexadexchange.net https://yandexadexchange.net youtube.com https://youtube.com ytimg.com https://ytimg.com *.vimeo.com https://*.vimeo.com *.vk.com https://*.vk.com *.yandex.ru https://*.yandex.ru *.youtube-nocookie.com https://*.youtube-nocookie.com *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
img-src 'self' *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.google-analytics.com https://*.google-analytics.com *.googleapis.com https://*.googleapis.com *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com google-analytics.com https://google-analytics.com vk.com https://vk.com yadro.ru https://yadro.ru *.rambler.ru https://*.rambler.ru *.vk.com https://*.vk.com *.yadro.ru https://*.yadro.ru *.yandex.net https://*.yandex.net *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
object-src 'self' *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.ggpht.com https://*.ggpht.com *.googlesyndication.com https://*.googlesyndication.com *.googlevideo.com https://*.googlevideo.com *.gstatic.com https://*.gstatic.com youtube.com https://youtube.com ytimg.com https://ytimg.com *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
script-src 'self' 'unsafe-eval' 'unsafe-inline' *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.google-analytics.com https://*.google-analytics.com *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com google-analytics.com https://google-analytics.com vk.com https://vk.com yadro.ru https://yadro.ru yandex.net https://yandex.net yandex.st https://yandex.st *.rambler.ru https://*.rambler.ru *.vk.com https://*.vk.com *.yadro.ru https://*.yadro.ru *.yandex.net https://*.yandex.net *.yandex.ru https://*.yandex.ru;\
style-src 'self' 'unsafe-inline' *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;\"
</IfModule>
 

Другой пример для партнерки DirectAdvert:

#Header set Content-Security-Policy-Report-Only
<ifModule mod_headers.c>
Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.vimeo.com https://tg.directadvert.ru https://directadvert.ru http://tg.directadvert.ru http://directadvert.ru *.directadvert.ru https://*.directadvert.ru http://*.directadvert.ru *.facebook.com https://*.facebook.com *.facebook.net *.tynt.com *.yandex.net https://site.yandex.net https://yastatic.net yastatic.net an.yandex.ru awaps.yandex.ru vk.com https://vk.com mc.yandex.ru clck.yandex.ru yandex.st https://*.googleapis.com https://*.google.com *.google.com *.gstatic.com https://*.gstatic.com www.google-analytics.com https://www.google-analytics.com *.googlesyndication.com https://*.googlesyndication.com *.googleapis.com *.doubleclick.net;object-src 'self' https://*.googleapis.com www.youtube.com https://www.youtube.com *.gstatic.com; frame-src 'self' *.facebook.com https://*.facebook.com bcp.crwdcntrl.net yastatic.net awaps.yandex.ru vk.com https://vk.com https://login.vk.com yandex.st www.youtube.com https://www.youtube.com *.googlesyndication.com *.doubleclick.net https://*.doubleclick.net https://*.google.com *.google.com mc.yandex.ru www.youtube.com; connect-src 'self' mc.yandex.ru www.google-analytics.com https://www.google-analytics.com;"
</IfModule>
 

Для счетчиков Xtrastats и кнопок социальных сетей Addtoany:

<ifModule mod_headers.c>
Header set Content-Security-Policy "\
default-src 'self';\
connect-src 'self' http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.google-analytics.com https://*.google-analytics.com *.googlevideo.com https://*.googlevideo.com google-analytics.com https://google-analytics.com youtube.com https://youtube.com ytimg.com https://ytimg.com *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
font-src 'self' http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;\
frame-src 'self' https://www.google.com/recaptcha/ http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com https://static.addtoany.com/menu/page.js static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.doubleclick.net https://*.doubleclick.net *.googleadservices.com https://*.googleadservices.com *.googlesyndication.com https://*.googlesyndication.com rutube.ru https://rutube.ru vk.com https://vk.com yandexadexchange.net https://yandexadexchange.net youtube.com https://youtube.com ytimg.com https://ytimg.com *.vimeo.com https://*.vimeo.com *.vk.com https://*.vk.com *.yandex.ru https://*.yandex.ru *.youtube-nocookie.com https://*.youtube-nocookie.com *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
img-src 'self' http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com https://static.addtoany.com/menu/page.js static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.google-analytics.com https://*.google-analytics.com *.googleapis.com https://*.googleapis.com *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com google-analytics.com https://google-analytics.com vk.com https://vk.com yadro.ru https://yadro.ru *.rambler.ru https://*.rambler.ru *.vk.com https://*.vk.com *.yadro.ru https://*.yadro.ru *.yandex.net https://*.yandex.net *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
object-src 'self' http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.ggpht.com https://*.ggpht.com *.googlesyndication.com https://*.googlesyndication.com *.googlevideo.com https://*.googlevideo.com *.gstatic.com https://*.gstatic.com youtube.com https://youtube.com ytimg.com https://ytimg.com *.yandex.ru https://*.yandex.ru *.youtube.com https://*.youtube.com *.ytimg.com https://*.ytimg.com;\
script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.2mdn.net https://*.2mdn.net *.doubleclick.net https://*.doubleclick.net *.google-analytics.com https://*.google-analytics.com *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com google-analytics.com https://google-analytics.com vk.com https://vk.com yadro.ru https://yadro.ru yandex.net https://yandex.net yandex.st https://yandex.st *.rambler.ru https://*.rambler.ru *.vk.com https://*.vk.com *.yadro.ru https://*.yadro.ru *.yandex.net https://*.yandex.net *.yandex.ru https://*.yandex.ru;\
style-src 'self' 'unsafe-inline' http://xtrastats.com http://*.xtrastats.com *.xtrastats.com xtrastats.com static.addtoany.com https://static.addtoany.com addtoany.com *.addtoany.com https://*.addtoany.com *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;\"
</IfModule>
 

 
Реклама
kwork advertising
Поделиться контентом в соцсетях: vkфейсбуктвиттерtelegramлинкединпинтерест
просмотрели просмотров: 290

Комментируя, Вы соглашаетесь с правилами пользования порталом.

Ваш адрес email не будет опубликован. Обязательные поля помечены *