Content Security Policy (CSP) для InstantCMS 2

+32
2.52K
День добрый,

Content Security Policy (CSP) — технология для обеспечения безопасности пользователей, позволяющая вебмастеру четко объяснить браузеру, на какие адреса тот может выполнять межсайтовые запросы. Суть технологии заключается в том, что администратор сайта может указать список разрешенных источников для загрузки контента (скриптов, стилей, иллюстрация и тд..) И злоумышленник не сможет добавить на страницу что-то постороннее — рекламу, мобильный редирект и тд..

Несколько ссылок, где об этом можно почитать подробней

Описание директив на mozilla.org (на англ языке)
Улучшение сетевой безопасности с помощью Content Security Policy (хабр)
Как настроить Content Security Policy (CSP) на zabolotskikh.com
Инструкция от Google (на англ языке)
99 страниц на серче...

Частые заблуждения

1. У меня сайт на https и мне это не нужно
Нужно, https и CSP это разные вещи и они никак не связаны (и не заменяют друг друга — и то, и другое желательно). CSP используют такие гиганты как Facebook, Twitter, Gmail, Яндекс почта и тд… список можно продолжать (это можно проверить посмотрев ответ сервера в консоли). Все эти сайты давным давно работают на https и тем не менее настраивают политику безопасности для контента.

2. Треть (четверть, одна восьмая) моих пользователей не смогут пользоваться сайтом
И тут опять можно вспомнить про Facebook, Twitter, Gmail, Яндекс почта и тд. CSP не усложняет доступ к сайту, а делает его безопасней.



Цена свободная. Вопросы по настройке можно кидать прямо в комментах.
Олег Васильевич я Олег Васильевич я 7 лет назад #
Комментарий удален
+1
Dorimen Dorimen 7 лет назад #
Крутая тема. Удивительно, но все Ваши разработки как-то очень нужные и актуальные и сразу занимают скачиваются и устанавливаются ))
+1
Dorimen Dorimen 7 лет назад #
Установил... Что-то пока ноль реакции )))



+1
SmartControl SmartControl 7 лет назад #
Я на видео показал - надо включить режим только отчёты и вбить любой символ в поле default-src. Посмотрите на видео, ну и проверьте события. Может быть к вам автоматом они не добавляются в базу, и надо добавить через админку.
+1
Dorimen Dorimen 7 лет назад #
Да это я все включал...





0
Dorimen Dorimen 7 лет назад #
Может быть из-за того, что установлена http-авторизация?
+2
SmartControl SmartControl 7 лет назад #
Проверил сейчас на новом домене с нуля.
1. Установил (события сами обновились, флаг стоит в настройках для этого)
2. Открыл настройки - поставил отчеты, логирование, цифру 1 в поле default-src
3. На сайте вижу ошибки CSP и заголовок соответствующий

Скрины
насчет авторизации не знаю.. можно проверить заголовок (как у меня на первом скрине) есть или нет. И логи в админке пишутся или нет на вкладке "Просмотр логов"
0
Dorimen Dorimen 7 лет назад #
странно...

событие установлено:



в логах совершенно пусто... (
0
SmartControl SmartControl 7 лет назад #
есть другой домен, чтобы проверить на нем? - я могу помочь, мне нужны для этого доступы к сайту.. так сложно сказать.
+2
SmartControl SmartControl 7 лет назад #
отпишусь для всех - сайт посмотрел, дело оказалось в кэше. Стандартная ситуация - если что-то не работает, то сначала проверяйте события и обнуляйте кэш. А потом уже все остальное)
+1
skewes skewes 7 лет назад #
Однозначно + !!!
Я вообще о таком не знал facepalm
+1
Pocus Pocus 7 лет назад #
@SmartControl, спасибо.
Вопросы:

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

Можно ли каким-то образом разрешить включение стронних картинок и видео в фрейме, не перечисляя всех возможных источников?
0
SmartControl SmartControl 7 лет назад #
Можно ли каким-то образом разрешить включение стронних картинок и видео в фрейме, не перечисляя всех возможных источников?
А можете пример подсказать где это используется? - я про вывод "стронних картинок и видео в фрейме". Компонент для инстанта, который так выводит или какой-то мини пример.
0
Pocus Pocus 7 лет назад #
В html редакторе
0
SmartControl SmartControl 7 лет назад #
А что будет в браузерах, которые не поддерживают CSP?
Не будет никаких действий. Просто этот заголовок браузер никак не обработает.
Вот я добавил свой придуманный заголовок - браузер его просто пропустил.
Заголовок, который браузер не поддерживает
Можно ли каким-то образом разрешить включение стронних картинок и видео в фрейме, не перечисляя всех возможных источников?
Я не вижу варианта "разрешить любые" - можно только заранее прописать домены. Но если так нужно, то можно придумать такой вариант - я могу добавить хук в компонент, который будет вызываться при формировании списка разрешенных доменов. И этот хук смогут перехватывать другие компоненты для добавления в список что-то свое. Но вот именно ключа "разрешить любые запросы" такого нет.

Есть еще мысль, попробую потестировать.
0
Pocus Pocus 7 лет назад #
Но если так нужно, то можно ...... И этот хук смогут перехватывать другие компоненты
Да еще не осознал, нужно или нет.
Но вместо хука можно придумать плагин-расширение для html редактора. В других компонентах, думаю, это не нужно.
0
Dorimen Dorimen 7 лет назад #


можно ли как-то сделать, чтобы не нужно было писать почти одинаковые сурсы? если у них есть что-то общее, то можно это общее оставить, а остальное звездочками по бокам... тогда это упростит все )
+1
SmartControl SmartControl 7 лет назад #
Можно разрешать все поддомены одной командой - *.firebaseio.com

Еще от автора

Stylik - визуальный редактор CSS стилей
Всем привет, Это первый компонент из серии (Шаблон + Лендинг + Редактор). Он позволяет кастомизицировать любой шаблон под InstantCMS 2.
Smart Шаблон на Bootstrap 4, Первое знакомство
Приветствую. В этом шаблоне нет привычной заранее заданной схемы позиций. Любая схема создается вручную за пару минут.
Загрузка с Google Images и Релевантные видео Youtube
Приветствую, В этом посте расскажу сразу про две доработки.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.