Content Security Policy

#1 6 апреля 2019 в 01:08
Поставил

  1.  
  2. <IfModule mod_headers.c>
  3. Header set Content-Security-Policy "default-src 'unsafe-inline' 'unsafe-eval' 'self' data: https://www.youtube.com https://yastatic.net https://fonts.gstatic.com https://mc.yandex.ru https://www.googletagmanager.com https://www.google-analytics.com https://fonts.googleapis.com"
  4. </IfModule>
  5.  
Чтобы избавиться от этого, вроде работает


Кто нибудь уже настраивал у себя на сайте CSP? У меня все правильно прописано? И есть ли какие то подводные камни с этого?
#2 6 апреля 2019 в 09:37
Почему в .htaccess а не в index.php?
Забыли про яндекс советника.
'unsafe-inline' 'unsafe-eval' — не безопасный вариант.
  1.  
  2. //////////////////////////*******************
  3. //все HTTP-запросы на https //header("Content-Security-Policy: upgrade-insecure-requests;");
  4. //default-src //В этой директиве задаются белые списки хостов, которые будут автоматически присвоены не заданным директивам.
  5. //script-srс //Белый список хостов с которых разрешается загрузка javascript
  6. //style-src //Белый список хостов с которых разрешается загрузка css
  7. //object-src //Белый список хостов с которых разрешается загрузка Flash-подобных плагинов
  8. //img-src //Белый список хостов с которых разрешается загрузка картинок
  9. //media-src //Белый список хостов с которых разрешается загрузка аудио и видео
  10. //frame-src //Белый список хостов с которых разрешается загрузка iframe'ов
  11. //font-src //Белый список хостов с которых разрешается загрузка шрифтов
  12. //connect-src //Спецдирективы для XMLHttpRequest, WebSocket и EventSource. Для каждой директивы задаётся список хостов, с которыми разрешено общаться браузеру.
  13. //report-uri //Url, на который будет отсылаться JSON-отчёт о нарушениях политики.
  14. //////////////////////////*******************
  15.  
Если не хотите читать справочники итд — готовое решение за символическую плату
#3 6 апреля 2019 в 11:15
В htaccess проще добавить было.
У меня единственная цель была это вырубить советника яши, поэтому пренебрег многочисленными замечаниями, в справочниках и плагинах, по 'unsafe-inline' и 'unsafe-eval'. Без их указания сайт просто "рассыпается".

Кстати, вот неплохой плагин нашел chrome.google.com/webstore/detail/csp-evaluator/fjohamlofnakbnbfjkohkbdigoodcejf

готовое решение за символическую плату

Дмитрий Баринов
Изначально сразу туда и пошел ) Но там указано, что для 2.8.2. А проверять заработает на 2.12.1 или нет не хочется.

Забыли про яндекс советника.

Дмитрий Баринов
Он и заблокирован, там на скрине

Refused to connect to sovetnik.market.yandex.ru because it violates the following Content Security Policy directive: бла- бла-бла


Немного волнуюсь за возможность пессимизации в выдаче со стороны того же яши. Ведь получается, что "какой то простой смертный клоп пошел против их гениального творения" (по факту своей хренью только помогают барыгам, впаривать людям китайские подделки и бу технику после ремонта).
#4 6 апреля 2019 в 13:17
Вот для настройки в режиме генератор

Он и заблокирован, там на скрине

Dmitry
Так Вы хотите его заблокировать или нет? Добавьте в белый список и предупреждение от яндекс пропадет.
//default-src или //script-srс

Немного волнуюсь за возможность пессимизации

Dmitry
А, вообще не стоит переживать… яндекс живет по принципу — пока платишь мы тебя поставляем пользователям. (как диллер glasses)
* под понятием "платишь" не всегда выступает понятие финансы как благо.
На моей практике было такое…
1 сайт за 1 неделю, по принципу, реклама, реклама, реклама… позиции топ 20. (высокочастотный) запросы — купить продать....
перестал платить — вообще не могу найти!
2 сайт за 2 месяца, по принципу, уник/качество/контент… позиция 64. (высокочастотный) запросы — купить продать....
позиция 75 — 62.
#5 6 апреля 2019 в 14:11

Так Вы хотите его заблокировать или нет?

Дмитрий Баринов
Заблокировать. Сейчас он заблокирован.
Скоро они как маил ру, в конвульсиях, будут троянов писать, чтобы вживлять свои сервисы прямо в ОС людям, чтобы доказывать всем и каждому какие у них крутые и мегаполезные сервисы. Надеюсь и закончат также laugh

позиция 64. (высокочастотный) запросы — купить продать

Дмитрий Баринов
Так тут логично ведь. Посещаемость сайта изменилась, позиции упали.
А иначе как им огромное количество сайтов распределять в выдаче? Где показатели выше, тех выше ставят.

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

Кстати, немного подправил конфигурацию, может кому сгодится
Добавить в .htaccess в корне сайта
  1.  
  2. <IfModule mod_headers.c>
  3. Header set Content-Security-Policy "default-src 'unsafe-inline' 'unsafe-eval' 'self' data: https://www.youtube.com https://vk.com https://yastatic.net https://fonts.gstatic.com https://mc.yandex.ru https://www.googletagmanager.com https://www.google-analytics.com https://fonts.googleapis.com; object-src 'none'"
  4. </IfModule>
  5.  
#6 7 апреля 2019 в 09:02
Дополню информацию для index.php
П.С. Использовать осторожно! Критике и поправкам только рад.
  1.  
  2. /**
  3.  * Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP.
  4.  * Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента.
  5.  * При конфигурации потребуется добавить только один параметр: “nosniff”.
  6.  */
  7. header( 'X-Content-Type-Options: nosniff' );
  8.  
  1.  
  2. //все HTTP-запросы на https
  3. header("Content-Security-Policy: upgrade-insecure-requests;");
  4.  
  1.  
  2. //В этой директиве задаются списки хостов, которые будут автоматически присвоены не заданным директивам.
  3. header( "Content-Security-Policy: default-src 'self' site.ru analytics.site.ru cbr.ru ;" );
  4.  
  1.  
  2. //наследование ссылок - откуда запрос
  3. header( "Content-Security-Policy: base-uri 'self' ;" );
  4.  
  1.  
  2. //строго блокировать все смешанное содержимое
  3. header( "Content-Security-Policy: block-all-mixed-content ;" );
  4.  
  1.  
  2. //Специальные директивы для XMLHttpRequest, WebSocket и EventSource. Обратите внимание, что для каждой из этих директив задаётся список не урлов, а хостов, с которыми разрешено общаться браузеру.
  3. header( "Content-Security-Policy: connect-src 'self' site.ru analytics.site.ru cbr.ru money.yandex.ru api-maps.yandex.ru ;" );
  4.  
  1.  
  2. //список хостов с которых разрешается загрузка javascript
  3. header( "Content-Security-Policy: script-srс 'self' site.ru analytics.site.ru api-maps.yandex.ru ;" );
  4.  
  1.  
  2. //список хостов с которых разрешается загрузка плагинов, flash
  3. header( "Content-Security-Policy: object-src 'none' ;" );
  4.  
  1.  
  2. //список хостов с которых разрешается загрузка плагинов, flash
  3. header( "Content-Security-Policy: img-src 'self' site.ru analytics.site.ru api-maps.yandex.ru ;" );
  4.  
  1.  
  2. //список хостов с которых разрешается загрузка iframe'ов
  3. header( "Content-Security-Policy: frame-src 'self' site.ru analytics.site.ru ;" );
  4. header( "Content-Security-Policy: frame-ancestors 'none';" );
  5.  
  1.  
  2. //список хостов с которых разрешается загрузка шрифтов
  3. header( "Content-Security-Policy: font-src 'self' site.ru ;" );
  4. header( "Content-Security-Policy: manifest-src 'self' ;" );
  5.  
  1.  
  2. //Url, на который будет отсылаться JSON-отчёт о нарушениях политики.
  3. header( "Content-Security-Policy: report-uri https://site.ru/folder/hammeranail.php ;" );
  4.  
  1.  
  2. //Url, на который будет отсылаться JSON-отчёт о нарушениях политики.
  3. //mode=block - блокировать
  4. header ( "X-XSS-Protection: 1; mode=block " );
  5. #header( "X-XSS-Protection: 1; report-uri https://site.ru/folder/cspreport.php ;" );
  6.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.