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

pavel419
На сайте с 03.05.2006
Offline
313
#381

samimages, я так понял, там это про вызов объектов на страницу. А всякие джиквери, и прочая нечисть? К тому же, если, скажем, три блока адсенса, это под каждый такой огород городить?

Все их в подвал, а в тело вот это? Пустой блок?

А если адсенс вставляется через плагин в контент, как тогда быть?

---------- Добавлено 26.02.2015 в 16:23 ----------

Интересно, насколько будет работать первый способ, где просто дописывают async или defer?

---------- Добавлено 26.02.2015 в 16:30 ----------

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

Вобщем, чую, забью я на это)

---------- Добавлено 26.02.2015 в 16:33 ----------

Зашел js-ку в плагине одном поковырять, а там вот такое 🤪:

@RuSeoBot (http://s419.ru/ruseobot/)- первый seo-бот в Twitter, а теперь - и канал в Telegram (http://s419.ru/servisy/pervyj-poiskovyj-seo-kanal-v-telegram/) Мой сайт про виртуальную реальность (http://vr419.ru/) Как правильно покупать на Алиэкспресс (http://4ali.ru/)
samimages
На сайте с 31.05.2009
Offline
427
#382
pavel419:
samimages, я так понял, там это про вызов объектов на страницу. А всякие джиквери, и прочая нечисть?

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

pavel419:
К тому же, если, скажем, три блока адсенса, это под каждый такой огород городить?
Все их в подвал, а в тело вот это? Пустой блок?
А если адсенс вставляется через плагин в контент, как тогда быть?

Тут я не советчик... у меня самопис - везде.

pavel419:
Интересно, насколько будет работать первый способ, где просто дописывают async или defer?

Там, на сколько я понял, html5 - я пока его не использую, не могу сказать.

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

samimages, ну я и подумал, что для самописов годно, а вот что с плагинами под вп делать, они там всякое добавляют. И хрен это куда уберешь.

Z0
На сайте с 03.09.2009
Offline
808
#384

Блин, после установки csp все было хорошо, левые переходы исчезли, теперь поперли какие-то farmmash.com 😒 по 40 переходов в день, только я такой? (это по liveinternet.ru)

dm2.jquerys.ru - эти после установки не исчезли, но сократились в разы.. однако тоже лезут

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

ziliboba0213, CSP обрабатывает браузер... если есть трафик на "осле" или, например, старой Опере, то переходы будут в случае заражения юзера.

VD
На сайте с 03.08.2010
Offline
62
#386

Я вот ещё чего не понял, когда нужно использовать data: ?

big boy
На сайте с 18.11.2006
Offline
331
#387
Vl@dimir:
Я вот ещё чего не понял, когда нужно использовать data: ?

Скорее всего речь идет про img-src?

Это для тех случаев, когда картинка прямо в коде вставлена, а не файлом. Простой пример - попробуйте скопировать и вставить изображение в wysiwyg редактор. Так же некоторые ПП используют. У себя открыл.

По своему сайту с гигантским CSP заметил существенную просадку в скорости отображения страниц.

Раньше к примеру вся статика (шапка, меню, стили) не "моргала" при переходе по страницам. А теперь каждый раз как с нуля загружается с белого экрана. Возможно разница 1-2 секунды или даже меньше, но ощутимо. Надо точные замеры сделать.

Написал Платону, что внедрил CSP и про другие улучшения на сайте (в надежде на восстановление позиций... наивный). В ответ получил отписку, что с сайтом все ок, а на следующий день позиции упали еще ниже.

✔ Как я генерирую статьи через ИИ, которые приносят трафик - https://webmasta.ru/blog/16-vkalyvayut-roboty-ne-chelovek-stati-s-pomoschyu-ii-kotorye-prinosyat-trafik
C
На сайте с 12.07.2008
Offline
49
#388

"data: URL — это определённая стандартом RFC 2397 схема, которая позволяет включать небольшие элементы данных в строку URL" https://ru.wikipedia.org/wiki/Data:_URL

У меня в логах было что через data пытались вставить перекодированый в base64 скрипт

L
На сайте с 07.12.2007
Offline
351
#389
master_blog:
Первое, по поводу кода csp.php

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

1. Для этого варианта csp.php надо обрабатывать имя создаваемого файла по домену

2. Лучше обрабатывать данные, которые пишутся в файл по htmlentities(): file_put_contents($FileName, htmlentities($content)) - мы всё-равно их читаем как текстовые, а возможность инжектов php-кода это отключит.

3. В директории, куда пишутся файлы, надо отключать исполнение скриптов и закрывать доступ через WEB-интерфейс/по IP.

4. Смените название директории, в которую пишет скрипт на свою. Извне её узнать не так уж легко, а для взлома её нужно знать.

* По-уму, в скрипте csp.php надо убрать else и обрамляющие {} в условии:
if(!is_dir($_SERVER['DOCUMENT_ROOT'].'/csp/'.date("dmY"))) mkdir($_SERVER['DOCUMENT_ROOT'].'/csp/'.date("dmY"), 0777);
else
{
. . . // Это - оставить
}
иначе он не записывае самый первый блокируемый url за каждый день - а только создаёт папку.

master_blog:
Второе, лидирующий домен по блокировкам: bcp.crwdcntrl.net
Нашёл тут на форуме в другой ветке его в разрешённых доменах, но больше нигде не упоминается. Может это адсенсовский вспомогательный домен? akamai-hd решили не разрешать?

nslookup -type=all crwdcntrl.net говорит, что это не домен, контролируемый Google.

На akamai-hd хостится много malware, если ваш сайт не использует akamai-hd как CDN - не разрешайте его. Сам Facebook юзает akamai-hd как CDN, но фэйсбуковских виджетах он не используется, так что для наших сайтов - не требуется.

master_blog:
Третье, значит собрал из всех сообщений большой такой заголовок CSP. У меня стоит адсенс, РСЯ, комментарии ВК, гугл аналитика, счётчик ливинтернет, рамблер топ100, видео youtube, rutube, vimeo.

Если что-то пропущено - покажут отчёты CSP и консоль браузера. Если открыто что-то лишнее - снизится эффективность CSP.

Я изучаю и проверяю руками каждый домен, прежде чем его открыть в CSP. Иногда даже приходится ставить эксперименты.

master_blog:
Четвёртое, на счёт отключения CSP для мобильных пользователей. Как бы это сделать средствами .htaccess? У меня используется кэш, поэтому возникают сложности с внедрением заголовка через php.

Для Apache 2 есть условный оператор IF, им можно в .htaccess фильтровать по Юзерагенту. Для Apache 1.3 подобного нет.

Если кэширование делается средствами PHP - можно CSP заголовок выдавать этим кэширующим модулем.

master_blog:
Пятое, раньше было активное обсуждение скриптов, которые вырезали бы левую рекламу, но потом как-то заглохло. Читал, что tparser продавал некий скрипт. Отсюда вопрос, есть ли бесплатный или платный рабочий скрипт? Работает ли оно или лучше сосредоточиться на CSP?

Своим скриптом сражаться со связкой вражеский_скрипт+плагин - не эффективно:

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

- вражеский скрипт вставляется и исполняется раньше вашего - первым после секции <head>

- вы не можете вмешаться внутрь замыкания типа:

(function() {
. . .
})();
, а многие вредоносные скрипты обёрнуты именно так.

- кроссплатформенно писать на javascript задача не из самых простых

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

L
На сайте с 07.12.2007
Offline
351
#390
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:
хотя бы под самые распространённые есть решение? сами используете скрипты?

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

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