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

L
На сайте с 07.12.2007
Offline
351
#861
thurman:
Существуют ли варианты не использовать script-src 'unsafe-inline' 'unsafe-eval' при наличии на сайте AdSense?

Без unsafe-inline не обойтись, даже подгружая скрипты рекламы из отдельного файла. Там потом сами скрипты Адсенса рисуют тэги с инлайн-обработчиками событий(onCLick и тп - они не будут работать без 'unsafe-inline').

А unsafe-eval требуется только для Я.Метрики и Директа.

PS: Это проверяется просто - переводите CSP в режим Report-only, убираете из неё 'unsafe-inline' 'unsafe-eval' и смотрите ошибки CSP в консоли браузера.

T
На сайте с 07.03.2016
Offline
0
#862

Ladycharm, спасибо. Да, я включал csp в режиме report-only, видел эти ошибки.

tyapuhy
На сайте с 06.10.2008
Offline
161
#863

Ladycharm, огромное спасибо за помощь! Видела Ваши отсылки к этой теме из темы pluso-гобонго, но почему-то тогда не уделила должного внимания. Сейчас только поставили на небольшом сайте CPS, обнаружили, как много хлама сыпется в отчеты. Реально не верится, что все это блокируется поделом.

Хотела бы добавить (и спросить):

https://*.googleusercontent.com - домен для загрузки гуuловых авvатаров при соц. комментах через G+

https://docs.google.com - документы Гугла, если встраиваются в страницу сайта

Напомните, пожалуйста, домены youtube - там был какой-то странный домен типа аббревиатуры. Что куда писать?

К сожалению, на моем хостинге настроить CSP нельзя ни через PHP, ни через .htaccess, поэтому хотя бы через http-equiv="Content-Security-Policy" делаю. Жаль, что нельзя получать отчеты. Сама, конечно, я по страницам прошлась, но все ли, что нужно, открыто.

Еще нужно ли открывать у Гугла все?

*.google.com http://*.google.com

Или нет?

(С учетом того, что репортов у меня нет).

Сейчас зашла на страницу сайта, AdLabs выдал заглушку (или Google) и заодно:


http://track.recreativ.ru/mtch.php?nid=6&psid=6168746281405870721
http://ad.dumedia.ru/uid/sync?sspId=4&id=6168746281405870721
http://ssp.adriver.ru/cgi-bin/sync.cgi?ssp_id=28&external_id=6168746281405870721
http://sync.madnet.ru/image?source=adlabs&return_url=http%3A%2F%2Fstat.adlabs.ru%2Fmerge_gpsid%2F%3Fsid%3D14%26id%3D%7BUID%7D&id=6168746281405870721
http://imrk.net/userbind?src=amn&id=6168746281405870721
http://s.uuidksinc.net/match/33/6168746281405870721

Это все какие-то пикселы, видимо, хотят собрать статистику. Их отклоняем смело? (у меня стоит только РСЯ, AdSense и AdLabs (без своих баннеров, только AdSense).

И вот еще такой доменчик: rt-ddd.ru - если я его не разрешаю, не показывается реклама в месте вставки AdLabs (баннер с мерседесами). Блокируем или разрешаем?

P.S. ЦА сайта, я думаю, из зоны риска на установки плагинов и проч. Можно ли как-то узнать, сколько чего у людей установлено? Каким-то счетчиком.

L
На сайте с 07.12.2007
Offline
351
#864
tyapuhy:
Напомните, пожалуйста, домены youtube - там был какой-то странный домен типа аббревиатуры. Что куда писать?

Ютуб использует несколько странных доменов:

- показ Youtube в frame: странный домен ytimg.com, прописывается в connect-src, frame-src, img-src и object-src.

- показ Youtube в <object> странные домены 2mdn.net и yt3.ggpht.com прописываются в object-src. ytimg.com - в object-src, и 2mdn.net - в script-src

tyapuhy:
Еще нужно ли открывать у Гугла все?
*.google.com http://*.google.com
Или нет?

У Google есть публичные сервисы, куда пользователи могут загружать свой контент, в тч и вредоносные скрипты. Я стараюсь открывать только то, что надо, и ничего лишнего.

Но это уже "ловля блох".

tyapuhy:
Сейчас зашла на страницу сайта, AdLabs выдал заглушку (или Google) и заодно:

http://track.recreativ.ru/mtch.php?nid=6&psid=6168746281405870721
http://ad.dumedia.ru/uid/sync?sspId=4&id=6168746281405870721
http://ssp.adriver.ru/cgi-bin/sync.cgi?ssp_id=28&external_id=6168746281405870721
http://sync.madnet.ru/image?source=adlabs&return_url=http%3A%2F%2Fstat.adlabs.ru%2Fmerge_gpsid%2F%3Fsid%3D14%26id%3D%7BUID%7D&id=6168746281405870721
http://imrk.net/userbind?src=amn&id=6168746281405870721
http://s.uuidksinc.net/match/33/6168746281405870721

Это все какие-то пикселы, видимо, хотят собрать статистику. Их отклоняем смело? (у меня стоит только РСЯ, AdSense и AdLabs (без своих баннеров, только AdSense).

Не, не смело:

- такими пикселами Яндекс RTB даёт доступ рекламодателям к статистике показов их объявлений

- такими пикселями синхронизируется показ объявлений из разных рекламных сетей. Например, AdLabs имеет договора с 10 другими "дружественными" рекламными сетями. Скрипт показа объявлений AdLabs на вашей странице поочерёдно опрашивает таким синхро-пикселем все эти рекламные сети, есть ли у них что показать на вашем сайте для конкретного посетителя(если Адлабс-у самому нечего показывать).

PS: AdLabs не использует такую технологию, у приличных рекламщиков уже всё работает через SSP/DSP. Но такие синхро-пиксели используют тизерки.

Те, что перечислены у вас - открывать точно не надо.

tyapuhy:
И вот еще такой доменчик: rt-ddd.ru - если я его не разрешаю, не показывается реклама в месте вставки AdLabs (баннер с мерседесами). Блокируем или разрешаем?

Это странно, AdLabs - серьёзная рекламная сеть, а rt-ddd.ru довольно свежий (13 Nov 2014) и зарегистрирован на частное лицо. И реклама через него идёт специфическая (явно не Мерседесы):

http://rt-ddd.ru/image/html5/banner/9836/836/14545026228-e64f59c0c049db2175d0358bf1b485bd/index.html

http://rt-ddd.ru/image/html5/banner/9086/86/14508883729-68d6508b43a1da935155e7bfba0403f4/index.html

http://rt-ddd.ru/image/html5/banner/9842/842/14545026502-7e7e7af25400f319cbadfa124eea511e/index.html

http://rt-ddd.ru/image/html5/banner/9833/833/14545025886-b6fd5a2120b79136bc31e25ac5dfc533/index.html

Я под Адлабс CSP не делала, их скрипт показа рекламы не стал работать на тестовом полигоне - похоже, надо, чтобы они сначала одобрили площадку, и потом реклама на ней будет показываться.

tyapuhy:
P.S. ЦА сайта, я думаю, из зоны риска на установки плагинов и проч. Можно ли как-то узнать, сколько чего у людей установлено? Каким-то счетчиком.

Только по CSP отчётам. Счётчики работают на яваскрипте, а у него возможности доступа внутрь браузера сильно ограничены. Иначе бы яваскриптом выключали Адблоки и прочие плагины.

K
На сайте с 08.02.2016
Offline
6
#865

Ladycharm, Здравствуйте!

В отчете проскочила mx://res/reader-mode/reader.html во frame-src. Я так понимаю это режим чтения в браузере. Подскажите, пожалуйста, как это можно добавить в разрешения.

{
"csp-report": {
"document-uri": "http://ohotnik-kolomna.ru/oruzie/product_narez/ckc-op.html",
"referrer": "",
"violated-directive": "frame-src 'self' http://vk.com https://vk.com http://login.vk.com https://login.vk.com http://*.facebook.com https://*.facebook.com https://*.ok.ru http://*.ok.ru http://*.addthis.com https://*.addthis.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.youtube.com https://www.youtube.com ",
"original-policy": "default-src 'self' http://ohotnik-kolomna.ru ; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://ssl.google-analytics.com https://ssl.google-analytics.com http://*.googleapis.com https://*.googleapis.com http://vk.com https://vk.com https://login.vk.com http://login.vk.com http://www.google-analytics.com https://www.google-analytics.com http://top-fwz1.mail.ru https://top-fwz1.mail.ru http://*.facebook.net https://*.facebook.net http://*.facebook.com https://*.facebook.com http://*.addthis.com https://*.addthis.com http://*.ok.ru https://*.ok.ru http://st.top100.ru https://st.top100.ru http://*.delicious.com https://*.delicious.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.odnoklassniki.ru https://www.odnoklassniki.ru http://www.reddit.com https://www.reddit.com https://www.linkedin.com http://www.linkedin.com http://injections.adguard.com https://injections.adguard.com http://counter.rambler.ru https://counter.rambler.ru ; style-src 'self' 'unsafe-inline' http://*.googleapis.com https://*.googleapis.com http://*.gstatic.com https://*.gstatic.com; img-src 'self' data: http://*.yadro.ru https://vk.com http://vk.com http://top-fwz1.mail.ru http://www.google-analytics.com https://www.google-analytics.com https://*.doubleclick.net http://*.doubleclick.net https://*.facebook.com http://*.facebook.com http://counter.rambler.ru https://counter.rambler.ru http://top-fwz1.mail.ru https://top-fwz1.mail.ru http://*.addthis.com https://*.addthis.com http://*.gstatic.com https://*.gstatic.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://*.googleapis.com https://*.googleapis.com http://www.adobe.com https://www.adobe.com http://m.addthisedge.com https://m.addthisedge.com https://apis.google.com http://apis.google.com ; font-src 'self' http://fonts.gstatic.com https://fonts.gstatic.com ; media-src 'self'; frame-src 'self' http://vk.com https://vk.com http://login.vk.com https://login.vk.com http://*.facebook.com https://*.facebook.com https://*.ok.ru http://*.ok.ru http://*.addthis.com https://*.addthis.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.youtube.com https://www.youtube.com ; connect-src 'self' http://www.google-analytics.com https://www.google-analytics.com http://*.addthis.com https://*.addthis.com https://m.addthisedge.com http://m.addthisedge.com ; report-uri https://report-uri.io/report/902149f45b2c02508d9587ab45c98de3 ;",
"blocked-uri": "mx://res/reader-mode/reader.html"
}
}

И еще, много переходов происходит на mobivid.net, clike.su и adguard.com можно ли этого избежать? Поможет ли добавление заголовков X-Frame-Options, X-XSS-Protection, X-Content-Type-Options?

Также часто в браузерах хром появляется asset в blocked-uri. С чем это может быть связано?

Отчет:

{
"csp-report": {
"document-uri": "http://ohotnik-kolomna.ru/oruzie/glad.html",
"referrer": "",
"violated-directive": "script-src 'self' 'unsafe-inline' 'unsafe-eval' http://ssl.google-analytics.com https://ssl.google-analytics.com http://*.googleapis.com https://*.googleapis.com http://vk.com https://vk.com https://login.vk.com http://login.vk.com http://www.google-analytics.com https://www.google-analytics.com http://top-fwz1.mail.ru https://top-fwz1.mail.ru http://*.facebook.net https://*.facebook.net http://*.facebook.com https://*.facebook.com http://*.addthis.com https://*.addthis.com http://*.ok.ru https://*.ok.ru http://st.top100.ru https://st.top100.ru http://*.delicious.com https://*.delicious.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.odnoklassniki.ru https://www.odnoklassniki.ru http://www.reddit.com https://www.reddit.com https://www.linkedin.com http://www.linkedin.com http://injections.adguard.com https://injections.adguard.com http://counter.rambler.ru https://counter.rambler.ru ",
"effective-directive": "script-src",
"original-policy": "default-src 'self' http://ohotnik-kolomna.ru ; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://ssl.google-analytics.com https://ssl.google-analytics.com http://*.googleapis.com https://*.googleapis.com http://vk.com https://vk.com https://login.vk.com http://login.vk.com http://www.google-analytics.com https://www.google-analytics.com http://top-fwz1.mail.ru https://top-fwz1.mail.ru http://*.facebook.net https://*.facebook.net http://*.facebook.com https://*.facebook.com http://*.addthis.com https://*.addthis.com http://*.ok.ru https://*.ok.ru http://st.top100.ru https://st.top100.ru http://*.delicious.com https://*.delicious.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.odnoklassniki.ru https://www.odnoklassniki.ru http://www.reddit.com https://www.reddit.com https://www.linkedin.com http://www.linkedin.com http://injections.adguard.com https://injections.adguard.com http://counter.rambler.ru https://counter.rambler.ru ; style-src 'self' 'unsafe-inline' http://*.googleapis.com https://*.googleapis.com http://*.gstatic.com https://*.gstatic.com; img-src 'self' data: http://*.yadro.ru https://vk.com http://vk.com http://top-fwz1.mail.ru http://www.google-analytics.com https://www.google-analytics.com https://*.doubleclick.net http://*.doubleclick.net https://*.facebook.com http://*.facebook.com http://counter.rambler.ru https://counter.rambler.ru http://top-fwz1.mail.ru https://top-fwz1.mail.ru http://*.addthis.com https://*.addthis.com http://*.gstatic.com https://*.gstatic.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://*.googleapis.com https://*.googleapis.com http://www.adobe.com https://www.adobe.com http://m.addthisedge.com https://m.addthisedge.com https://apis.google.com http://apis.google.com ; font-src 'self' http://fonts.gstatic.com https://fonts.gstatic.com ; media-src 'self'; frame-src 'self' http://vk.com https://vk.com http://login.vk.com https://login.vk.com http://*.facebook.com https://*.facebook.com https://*.ok.ru http://*.ok.ru http://*.addthis.com https://*.addthis.com https://*.google.com http://*.google.com https://*.pinterest.com http://*.pinterest.com http://*.twitter.com https://*.twitter.com http://www.youtube.com https://www.youtube.com ; connect-src 'self' http://www.google-analytics.com https://www.google-analytics.com http://*.addthis.com https://*.addthis.com https://m.addthisedge.com http://m.addthisedge.com ; report-uri https://report-uri.io/report/902149f45b2c02508d9587ab45c98de3 ;",
"blocked-uri": "asset",
"status-code": 200
}
}

И правильно ли я понимаю, что с: mxjscall://, webviewprogressproxy://, res://, mx://, safari-resource://, chromenull://, chromeinvoke://, chromeinvokeimmediate://, mbinit://, opera://, localhost, 127.0.0.1, resource:// - ничего нельзя сделать?

tyapuhy
На сайте с 06.10.2008
Offline
161
#866

Ladycharm, спасибо.

От AdLabs пришел вот такой список доменов, которые они советуют добавить в CSP.

*.luxup.ru
*.luxadv.com
*.luxcdn.com
*.adlabs.ru
*.tns-counter.ru
*.luxupcdna.com
*.luxupcdnb.com
*.luxupcdnc.com
*.luxupadva.com
*.luxupadvb.com
*.luxupadvc.com
L
На сайте с 07.12.2007
Offline
351
#867
tyapuhy:

От AdLabs пришел вот такой список доменов, которые они советуют добавить в CSP.
*.luxup.ru
*.luxadv.com
*.luxcdn.com
*.adlabs.ru
*.tns-counter.ru
*.luxupcdna.com
*.luxupcdnb.com
*.luxupcdnc.com
*.luxupadva.com
*.luxupadvb.com
*.luxupadvc.com

Tyapuhy, спасибо за список.

Tns-counter.ru никак не связан в Adlabs, этот счётчик явно аффилирован с гос.органам, которые очень любят "регулировать интернеты".

Не стоит давать им лишние возможности для контроля над посещаемостью сайтов, последствия от этого могут быть плачевны.

Остальные домены - тизерная реклама luxup.ru, которую раньше активно использовали многие вредоносные плагины. Сейчас сеть luxup купил Adlabs, может что то и поменялось.

Поскольку у вас только Adsense через Adlabs, то в вашем случае эти домены открывать не надо.

tyapuhy
На сайте с 06.10.2008
Offline
161
#868
tyapuhy:

К сожалению, на моем хостинге настроить CSP нельзя ни через PHP, ни через .htaccess, поэтому хотя бы через http-equiv="Content-Security-Policy" делаю. Жаль, что нельзя получать отчеты. Сама, конечно, я по страницам прошлась, но все ли, что нужно, открыто.

Удалось решить вопрос вручную. Мне настроили CSP сами по списку моих доменов, а, возможно, и отчеты сделают. Ура!

По LuxUp понятно. Задала соответствующий вопрос в поддержку - зачем мне прислали эти домены, если у меня нет тизерок, а только Гугл-реклама. Посмотрим, что ответят.

Vin_cent
На сайте с 22.01.2010
Offline
171
#869

Возник вопрос.

А что если, помимо прописывания CSP в http заголовке, продублировать ещё и в коде html страниц сайта: <meta http-equiv="Content-Security-Policy" content="default-src 'self'; ...">

Если есть плагины, которые подменяют http заголовки, может они не будут удалять этот мета-тэг с html страниц и блокировка всёравно будет работать? Или они и в коде html ищут такую строчку "<meta http-equiv="Content-Security-Policy"... ", и удаляют?

L
На сайте с 07.12.2007
Offline
351
#870
Vin_cent:
А что если, помимо прописывания CSP в http заголовке, продублировать ещё и в коде html страниц сайта: <meta http-equiv="Content-Security-Policy" content="default-src 'self'; ...">

Если есть плагины, которые подменяют http заголовки, может они не будут удалять этот мета-тэг с html страниц и блокировка всёравно будет работать?

Приоритет будет имеет CSP, которая отдаётся через заголовок header. Поэтому <meta http-equiv="Content-Security-Policy" content="default-src 'self'; ..."> просто не будет работать.

kohotnik:
В отчете проскочила mx://res/reader-mode/reader.html во frame-src. Я так понимаю это режим чтения в браузере. Подскажите, пожалуйста, как это можно добавить в разрешения.

Это расширение Safari Reader от Apple. По идее, надо добавить протокол mx: в директиву frame-src, но у меня нет "яблочного" девайса, чтобы это проверить.

kohotnik:
И еще, много переходов происходит на mobivid.net, clike.su и adguard.com можно ли этого избежать? Поможет ли добавление заголовков X-Frame-Options, X-XSS-Protection, X-Content-Type-Options?

mobivid.net это один из доменов traffic.ru, он отлично режется CSP.

clike.su у меня нормально режется в директиве frame-src

adguard.com - это аналог Adblock, сами понимаете, его работу просто так не заблокировать и баннеры на странице он вырежет. Но переходов на него быть не должно - если он вставит что-то на страницу, это заблокируется в CSP.

Но в некоторых случаях программы имеют возможность модифицировать заголовки CSP и прописать себя в разрешения.

X-Frame-Options, X-XSS-Protection, X-Content-Type-Options - это заголовки безопасности, но к CSP они отношения не имеют.

Отдавать эти заголовки лишним не будет, только перед этим надо проверить, использует ли ваш сайт кросс-доменные запросы, показ фреймов с чужих доменов и тп.

kohotnik:
Также часто в браузерах хром появляется asset в blocked-uri. С чем это может быть связано?

Причина появления этого нашими специалистами пока до конца не выяснена.

kohotnik:
И правильно ли я понимаю, что с: mxjscall://, webviewprogressproxy://, res://, mx://, safari-resource://, chromenull://, chromeinvoke://, chromeinvokeimmediate://, mbinit://, opera://, localhost, 127.0.0.1, resource:// - ничего нельзя сделать?

Можно. Только надо:

- ответить на вопрос "а есть ли смысл в адаптации CSP(и PHP-кода сайта) под поддержку этих единичных мобильных устройств"?

- иметь кучу мобильных устройств с IOS/MacOS, зачастую с очень старой или специфической версией "операционки"(например, делалась специальная операционная система под FaceBook).

Возможно, проще просто не отдавать CSP-заголовки для посетителей с некоторыми типами браузеров/операционных систем?

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