Настройка CSP - Content Security Policy

slams
На сайте с 26.07.2008
Offline
160
#151

Делюсь своими заголовками:

Content-Security-Policy: "default-src 'self' *.googletagmanager.com *.googlesyndication.com *.facebook.com *.vk.com vk.com https://apis.google.com *.google.com *.google.ru *.google.com.ua *.twitter.com *.youtube.com https://www.youtube.com *.odnoklassniki.ru news.gnezdo.ru *.rutarget.ru *.adriver.ru *.doubleclick.net *.bidswitch.net *.yandex.ru https://accounts.google.com https://googleads.g.doubleclick.net https://googleads.g.doubleclick.net https://s-static.ak.facebook.com https://www.facebook.com https://login.vk.com;

script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google.com https://apis.google.com ajax.googleapis.com www.gstatic.com mc.yandex.ru an.yandex.ru *.yandex.ua *.yandex.ru https://pagead2.googlesyndication.com http://pagead2.googlesyndication.com *.luxup.ru luxup.ru *.luxadv.com *.luxcdn.com vk.com *.twitter.com connect.facebook.net graph.facebook.com connect.mail.ru *.pinterest.com *.advertur.ru advertur.ru *.betweendigital.com counter.rambler.ru www.googletagservices.com www.googletagmanager.com www.google-analytics.com *.googleadservices.com go.youlamedia.com *.adlabs.ru *.adriver.ru *.kavanga.ru *.ok.ru ok.ru *.sociomantic.com *.odnoklassniki.ru; object-src 'self' *.adriver.ru *.gstatic.com;

style-src 'self' 'unsafe-inline' fonts.googleapis.com *.sociomantic.com;

img-src 'self' data: counter.yadro.ru *.ytimg.com *.yandex.net *.yandex.ru *.yandex.ua *.google.md *.google.lt *.google.co.uk *.pinterest.com vk.com *.googleusercontent.com www.google-analytics.com *.google.com *.google.ru *.google.by *.google.com.ua *.google.be *.google.kz *.gstatic.com counter.rambler.ru *.betweendigital.com *.luxup.ru *.adlabs-retail.ru go.youlamedia.com *.gravatar.com front.facetz.net ad.dumedia.ru rtb.rtcdn.ru g.mp.luxcdn.com *.rtb-media.ru *.whisla.com *.adlabs.ru *.recreativ.ru *.mail.ru *.tns-counter.ru x.bidswitch.net *.luxadv.com *.sociomantic.com *.adriver.ru *.kavanga.ru *.hubrus.com *.doubleclick.net https://stats.g.doubleclick.net; media-src 'self'; font-src 'self' data: fonts.gstatic.com; connect-src 'self' mc.yandex.ru www.google-analytics.com;

report-uri http://site.ru/csp_repo.php"

Кому интересно - забирайте.

Рекламные сети: advertur.ru, news.gnezdo.ru, google adsense, РСЯ, youlamedia, pingmedia

Не забудьте в картинки, стили и скрипты вставить свой сайт. Ну и конечно, нужно тестить. Вот этот скрипт (https://git.immerda.ch/csp-report/) пишет репорты в базу в удобном виде. Как представлять его потом будете - Ваше дело.

Из наблюдений могу сказать, что возникают проблемы с некоторыми скриптами на iOS Safari и браузерами под линухом. Думаю вот реализовать добавление заголовков в Wordpress с помощью плагина https://wordpress.org/plugins/add-headers/ делаю проверку на яблоки и никсы.

V2
На сайте с 17.12.2013
Offline
63
#152
Ladycharm:
Надо добавить в директивах следующее:
в script-src: 'unsafe-inline' *.acint.net https://*.acint.net acint.net https://acint.net
в img-src: *.acint.net https://*.acint.net acint.net https://acint.net
в style-src: 'unsafe-inline'

PS: Не палевно открывать домен, по которому поисковики сразу увидят аффилированность сайта с сапой?

PS: Я глубоко убежден, что и без счетчика сапы, ПС прекрасно знают о присутствии сайта в этой системе :)

Посоветуйте пожалуйста как правильно поступить. На огромном сайте есть форум и блоги. Там юзеры вставляют к постам картинки. Картинки берут по принципу "где нашли оттуда и прицепили".

CSP всё это естественно блокирует. Как правильно сделать чтобы в определенных разделах сайта картинки не вырезались?

L
На сайте с 07.12.2007
Offline
351
#153

Morrich, а Malcolm - прав. Заголовки могут работать некорректно и в логи будут сыпаться Предупреждения, что заголовки отданы уже после начало вывода страницы.

Хотя у вас - работают 100%, похоже умный Wordpress буферизует вывод страницы и при этом не буферизует заголовки.

Все http-заголовки надо вставлять в самое начало файла:


<?php // Отдаём нужные заголовки:
header("X-Content-Type-Options: nosniff");
header("X-Frame-Options: DENY");
header("X-XSS-Protection: 1; mode=block");
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=<?php bloginfo('charset'); ?>">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_head(); ?>
</head>


---------- Добавлено 19.01.2015 в 00:14 ----------

Vipper222:
На огромном сайте есть форум и блоги. Там юзеры вставляют к постам картинки. Картинки берут по принципу "где нашли оттуда и прицепили".
CSP всё это естественно блокирует.
Для форумов и блогов приходится делать директиву img-src полностью открытой:

img-src * data: https:

это не сильно снижает безопасность.

Так же, для форумов надо сразу открывать видео от Youtube, Vimeo, Mail.ru и откуда там они ещё могут вставлять клипы.

C
На сайте с 07.05.2010
Offline
227
#154

slams, для pingmedia (soloway) надо добавить в object-src *.datariver.ru

А вообще, вот их ответ:


К сожалению, мы не можем говорить о сторонних ресурсах, так как не имеем достаточно
информации о них. Мы можем отвечать только о своих ресурсах. С нашей стороны используются
следующие домены: adriver.ru и datariver.ru и все их поддомены.
slams
На сайте с 26.07.2008
Offline
160
#155

ctit, спасибо, добавлю. В отчетах не встречал, но не значит, что нет. Будет за несколько дней еще выборка, думаю написать парсер уже результатов с базы, чтобы на графике группировал по количеству вызовов скриптов и по user-agent, чтобы не перелопачивать все подряд.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#156
ctit:
для pingmedia (soloway) надо добавить в object-src *.datariver.ru

Кстати, у пингмедии у меня datariver.ru не встречался. Встречались imrk.net *.intencysrv.com *.sociomantic.com securepaths.com *.datamind.ru *.rutarget.ru *.hubrus.com в разделе frame-src.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
L
На сайте с 07.12.2007
Offline
351
#157
Оптимизайка:
Встречались imrk.net *.intencysrv.com *.sociomantic.com securepaths.com *.datamind.ru *.rutarget.ru *.hubrus.com в разделе frame-src.

imrk.net - это аффилированный домен AdvMaker (для формата Sliding Banner их партнёрки am15.net), см пост Obevan. Там же светится ещё один их домен - imrkcrv.net.

c.securepaths.com - используется в коде яваскрипта с imrkcrv.net, на счёт аффилированности к AdvMaker - не знаю.

C
На сайте с 07.05.2010
Offline
227
#158
Оптимизайка:
Кстати, у пингмедии у меня datariver.ru не встречался. Встречались imrk.net *.intencysrv.com *.sociomantic.com securepaths.com *.datamind.ru *.rutarget.ru *.hubrus.com в разделе frame-src.

У меня наоборот, все, кроме, securepaths.com, тоже указаны в frame-src

V2
На сайте с 17.12.2013
Offline
63
#159
Ladycharm:

Для форумов и блогов приходится делать директиву img-src полностью открытой:
img-src * data: https:

это не сильно снижает безопасность.
Так же, для форумов надо сразу открывать видео от Youtube, Vimeo, Mail.ru и откуда там они ещё могут вставлять клипы.

Извините пожалуйста, как же всё таки правильно выглядит полностью открытая директива img-src ?

Правильный синтаксис до ;

samimages
На сайте с 31.05.2009
Offline
427
#160

У меня пока так получилось, может кому пригодится.

На сайте: adSense + VK (виджет) + VK (комменты) + Метрика + Аналитик + "Поделиться" (Яндекс)


Header set Content-Security-Policy "
default-src 'self';
img-src 'self' vk.com yastatic.net *.yandex.ru *.googlesyndication.com *.google-analytics.com;
style-src 'self' 'unsafe-inline';
script-src 'self' 'unsafe-inline' 'unsafe-eval' *.yandex.ru yandex.st userapi.com *.google-analytics.com *.googlesyndication.com *.gstatic.com;
object-src 'self' *.gstatic.com;
connect-src 'self' 'unsafe-inline' *.yandex.ru;
frame-src 'self' vk.com *.vk.com https://vk.com https://*.vk.com *.doubleclick.net https://*.doubleclick.net *.yandex.ru;
font-src 'self';
report-uri http://site.ru/csp.php;"

В логах периодически появляется pagead2.googlesyndication.com - violated-directive: пустая... чего за глюк х/з

Посещалка у сайта 1500 уников / сутки, в среднем;

10-25 он-лайн;

до 4000 просмотров

- а появляется она раз в пару часов - может на их стороне чего?..

Опыт как иммунитет — приобретается в муках! Хостинг: экономия до 1300 руб + домен в подарок ( https://clck.ru/XLscf ) / Аудит семантики от 15К [долго] - ЛС

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий