Misogi
  • Войти
  • Регистрация

Политика безопасности контента - защитите свой сайт от XSS-атак

Разработка 60 дней назад (24 ноября 2020)

Очень часто при создании любого проекта мы используем определенные сторонние библиотеки, в случае Javascript; npm packages, которые рекурсивно используют больше пакетов, и в конечном итоге ваш код включает в себя огромный кусок стороннего кода.

Content Security Policy (CSP)

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

Проблема в том, что библиотека пытается загрузить удаленный контент на наш сайт. Это может быть изображение, шрифт, стиль или даже Javascript. Этот контент обходит все наши тесты, проверки и выполняется непосредственно в производственной среде. Что еще хуже, мы не знаем, откуда подается контент.

Content Security Policy (CSP)

Политика безопасности контента (CSP) — это спецификация W3C, которая помогает избежать XSSатак. CSP позволяет разработчикам определять правила для получения ресурсов (изображений, javascript, шрифтов и т.д.) в клиентском браузере.

Разработчики могут определять политики, чтобы разрешить / ограничить загрузку любого ресурса, ограничить загрузку ресурсов только из определенных доменов и запретить из любого другого домена. Например, вы можете написать CSP, чтобы ограничить браузеры загружать изображения только из example.com, любые изображения из других доменов не будут загружаться и будут вызывать ошибки. Помимо ресурсов, CSP также предлагает контроль над встраиванием.

Интересно, в этом сценарии, который используется тут, такое включение возможно?

Content-Security-Policy: default-src 'self';
# безопасность, javascript
Wiki (WIki) +3
161
+1

Читать

Принцип KISS (акроним для «Keep it simple»)
Что я узнал: База знаний
Еще чуток изменений (InnoDB, utf8mb4) и другое
Комментарии (3)
Evg 24 ноября 2020 в 01:00 # +1

Можно попробовать включить. Но работы будет много, ИМХО. В Throat, мы сделали это, в Discourse команда не так давно сделала это, нет ничего сложного, просто время.

Первый шаг — убрать все style и script из кода. Я бы начал с этого. Далее, посмотреть в сторону getLangJS и пройдитесь далее.

[-] [+] Ответить
Комментарии скрыты...
Wiki 24 ноября 2020 в 13:11 # ⇧

Все сценарии не работают. javascript:void(0), капча, редактор, lang и многое другое.

[-] [+] Ответить
Комментарии скрыты...
Evg 24 ноября 2020 в 15:27 # ⇧

Так правильно, когда ничего не работает, и сломать сложно все. А с этой политикой, если её тут добавить, — полный кердык. Только читать. ))) Почистить надо чуток для начала, css при любом раскладе, чего в шаблонах делает? Да и js при желание в файлы закинуть можно. Времени пока не очень много этим заниматься.

[-] [+] Ответить
Комментарии скрыты...
+ Добавить комментарий

Комментарии

01
Фотография в Таймс-сквер стала классикой, в прочем, как и первые две. Очень...
+ 2 — сегодня в 07:41
02
Не зря лишали ранее сна при пытках. Человек медленно сходил с ума.
+ 1 — 19 января 2021 в 06:19
03
Достаточно посмотреть их лица на фото. Какие 13/16 лет? Эти «дети» росли и...
+ 2 — 16 января 2021 в 08:49
04
Конечно, эти полинезийские дети вели очень физически активный образ жизни,...
+ 3 — 16 января 2021 в 08:47
05
А вот не надо по пещерам лазить и крокодилов руками лапать! Они там от нас...
+ 1 — 15 января 2021 в 08:45
Все комментарии...
О блоге Статистика блога Правила Все блоги
Мисоги © 2021 — интересные блоги