Ladycharm

Рейтинг
351
Регистрация
07.12.2007
Staid:
Подскажите пожалуйста как корректно настроить CSP если на сайте стоит li, метрика и адсенс?

Content-Security-Policy:
default-src 'self' your-site.com *.your-site.com;
connect-src 'self' your-site.com *.your-site.com *.yandex.ru https://*.yandex.ru;
font-src 'self' your-site.com *.your-site.com *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;
frame-src 'self' your-site.com *.your-site.com *.doubleclick.net https://*.doubleclick.net *.googleadservices.com https://*.googleadservices.com *.googlesyndication.com https://*.googlesyndication.com *.yandex.ru https://*.yandex.ru;
img-src 'self' your-site.com *.your-site.com *.2mdn.net https://*.2mdn.net data: *.doubleclick.net https://*.doubleclick.net *.googleapis.com https://*.googleapis.com *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com yadro.ru https://yadro.ru *.yadro.ru https://*.yadro.ru *.yandex.ru https://*.yandex.ru;
object-src 'self' your-site.com *.your-site.com *.doubleclick.net https://*.doubleclick.net *.gstatic.com https://*.gstatic.com;
script-src 'self' 'unsafe-eval' 'unsafe-inline' your-site.com *.your-site.com *.doubleclick.net https://*.doubleclick.net *.googlesyndication.com https://*.googlesyndication.com *.gstatic.com https://*.gstatic.com yadro.ru https://yadro.ru *.yadro.ru https://*.yadro.ru *.yandex.ru https://*.yandex.ru;
style-src 'self' 'unsafe-inline' your-site.com *.your-site.com *.googleapis.com https://*.googleapis.com *.gstatic.com https://*.gstatic.com;
Но надо смотреть по отчётам CSP, поскольку бывают ньюансы. Например, форумы загружают картинки и аватары отовсюду. Вs сами(плагины CMS) можете использовать скрипты и шрифты из внешних источников
Staid:
Кстати установил плагин ради теста. Рекламу не подменяет, но при первом клике в любое место сайта открывается вторая вкладка с сайтом мавроди. :o

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

Сам плагин ставить не обязательно, зачастую достаточно вставить на сайт яваскрипт из плагина, см показательный тест от pavel419.

И всего-то, надо поставить на страницу скрипт:

<script type="text/javascript" src="http://apidigihelpinfo-a.akamaihd.net/gsrs?is=isgizzRU&amp;bp=PB&amp;g=6d7f3d11-bd78-4c50-a206-798ba07b30aa"></script>

Xaron:
Почему сюда?
Не фурычит в смысле.

Потому, что по вашей ссылке - яваскрипт, который будет грузить картинку именно с www .liveinternet.ru:

var img = new Image(1,1);
img.src = 'http://www.liveinternet.ru/click?*' + link;
demon2005:
ого. У кого-то 67 000 сайтов...

Когда дорвейшики парсят сайт на тексты, они часто выдергивают всё, вместе с рекламой.

А сервис spyify.com - он тупой, собирает всё без разбора, и не апдейтит устаревшую информацию.

Vipper222:
как будет правильно выглядеть секция object-src в которой всё разрешено?

Так повелось исстари, что все браузеры понимают *, то есть object-src *; откроет все протоколы и все домены.

Хотя, согласно строгой нотации w3c, * можно использовать только вместо доменного имени и номера порта. Вместо протокола * не используется.

То есть, w3c требует в директиве перечислять протоколы:

object-src http://* https://*;

или

object-src http: https:;

обе записи эквивалентны и работают так же, как и:

object-src *;

Проверено тестами.

Vipper222:
У меня в одном из разделов сайта висит флеш проигрыватель для прослушивания радио.
Что интересно, если через Хром слушать, то CSP не блокирует радиостанции, а вот Мозила блокирует.

Посмотрите в Мозилле в консоли яваскрипта что блокируется CSP.

Плееры, кроме object-src, могут использовать connect-src для потокового видео/аудио.

Оптимизайка:
Кэши, лимиты - это потом, после оптимизации SQL.

Оптимизайка, частота автоповтора клавиши ~15 символов в секунду.

Имхо, для 15 запросов в секунду - это уже надо NodeJS иметь на сервере, а не Апач с php.

Хотя, если сделать кэширование страниц, справится и Apache. nginx для отдачи статики - тоже сильно облегчит жизнь.

Но зажатая <F5> - это аномальное поведение посетителя, с аномалиями проще бороться ограничениями и лимитами на уровне сервера, а не самого скрипта.

Vipper222:
Что-то очень много последнее время стало блокироваться домена am15.net который принадлежит рекламной сети advmaker с которой я не работаю.
Его точно не могут использовать ЯД и Адсенс ?

Реклама Адсенс работает на платформе doubleclick.net, и использует только собственные скрипты для размещения баннеров и фреймов. Иначе они не смогут таргетировать рекламу, отслеживать конверсию, учитывать клики и тп.

У advmaker/am15.net - свои скрипты и свой ифрейм.

У Директа - то же самое. Плюс, в скрипты Директа встроена Метрика - он тоже всё подсчитывает сам. К тому же, Директ не размещается в iframe, а скрипты AdvMaker - показывают рекламу именно в ифрейме, посмотрите их скрипты.

am15.net - тулбарщики и всякое malware. За исключением случаев сознательной установки вебмастером рекламы от AdvMaker (кроме подпольной, у AdvMaker-а есть и белая официальная партнёрская программа).

Vipper222:
Да нормально вроде всё. В семье есть одна такая гадость как Айфон, смотрел с него свои сайты которые работают с CSP, ничего подозрительного не увидел.

Это радует. Ещё бы посмотреть, что при этом сыпется в отчётах CSP. Зайти вечером, когда кроме вас с айфоном никого нет на сайте и проверить.

master_blog:
просто код может быть можно уменьшить, убрав лишние домены в разные директивах. Этим просил помочь.

Собирать по крупицам из постов - не кошерно.

Наш метод:

- ставим CSP в режим Report-Only

- гуляем по сайту и смотрим что блокируется по консоли яваскрипт в браузере(первичная настройка)

- смотрим что блокируется по отчётам и офигеваем от тысяч разных доменов.

Когда у вас будет >10 сообщений - заработает "личка"(личные сообщения через форум). Тогда смогу помочь настроить CSP профессионально.

А пока - вот ваша CSP по "фотографии" сайта: адсенс, РСЯ, комментарии ВК, гугл аналитика, счётчик ливинтернет, рамблер топ100, видео youtube(в <iframe> и <object>), rutube, vimeo


<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>
Сделана под формат файла .htaccess веб-сервера Apache. Для браузера Safari - лучше добавить ВашДомен в каждую директиву.

Будьте готовы, что:

- некоторые хостеры ограничивают размер заголовков Apache, большое спасибо Vl@dimir и big boy, которые это выяснили.

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

- был один хостер, у которого пришлось вытягивать всё в одну строку, тк htaccess не понимал переноса на следующую строку по \

Правьте .htaccess аккуратно, сделав его рабочую копию. Любая ошибка в его синтаксисе - сайт перестаёт работать и вылетает ошибка 500/502.

master_blog:
А каким юзерагентам посоветуете отключать CSP?

Отключать заголовки CSP для мобильных юзерагентов хотели - вы, вам и решать :)

Под подозрением - разные Mobile Safari для iPad и iPhone и для Safari для Макинтоша. Но я не смотрела, что реально творится в этих браузерах при CSP, тк сижу на Samsung-ах, на iPad/iPhone жалко 600 баксов выкидывать просто так, ради "только посмотреть".

Жду, когда кто-нибудь их "айфонщиков" CSP поставит и расскажет "чо происходит".

master_blog:
хотя бы под самые распространённые есть решение? сами используете скрипты?

Как только эти скрипты уйдут в паблик - они перестанут работать, тк настроены под найденные уязвимости вредоносных скриптов и плагинов. Эти уязвимости быстро залатают.

Preci:
ограничение в 2 запроса в секунду с одного IP - это чиcло должно как то зависеть от посещаемости, или 2 это "универсально"?

Учтите, что современные браузеры качают скрипты и картинки параллельно, и не перебаньте роботов ПС под горячую руку.

Orient1:
Уверен, для более опытных людей не составит труда разобраться во всем.

"Опытный" - не полезет править "нелицуху", тк потом все стрелки будут на него.

Можно настроить кэширование на стороне клиента по заголовкам If-modified-since <-> Last-Modified. Тогда при нажатой <F5> браузер будет брать страницу из своего кэша.

Но может появиться вопрос о нажатой <Shift + F5> или <Ctrl + F5> :)

Можно и нужно поставить модуль кэширования WP.

PS: А вообще, бороться с http-флудом надо ограничением количества подключений с одного IP в единицу времени.

Всего: 4257