Skip to content

Instantly share code, notes, and snippets.

Created September 8, 2017 11:11
Show Gist options
  • Save anonymous/b592db153004634f74021f5c4b929b0f to your computer and use it in GitHub Desktop.
Save anonymous/b592db153004634f74021f5c4b929b0f to your computer and use it in GitHub Desktop.
Post content перевод

Post content перевод



Перевод "post content" на русский
Прощай, XMLHttpRequest!
русско-английский перевод "пост"

Только полноправные пользователи могут оставлять комментарии. TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим. Хабрахабр Публикации Пользователи Хабы Компании Песочница. NIX Solutions 81,24 Компания. Content Security Policy CSP, политика защиты контента — это механизм обеспечения безопасности, с помощью которого можно защищаться от атак с внедрением контента, например, межсайтового скриптинга XSS, cross site scripting. CSP описывает безопасные источники загрузки ресурсов, устанавливает правила использования встроенных стилей, скриптов, а также динамической оценки JavaScript — например, с помощью eval. Принцип действия CSP сейчас является кандидатом в рекомендации консорциума W3C. Если какая-то директива не указана в заголовке, то политика применяется согласно списку default-src. Для всех директив действуют следующие правила: Для ссылки на текущий домен используется self. В перечне URL адреса разделяются пробелами. Если в рамках данной директивы ничего не должно загружаться, то применяется none. Простейший пример политики, разрешающей загрузку ресурсов только указанного домена: По умолчанию CSP ограничивает исполнение JavaScript путём запрета встроенных скриптов и динамической оценки кода. Например, XSS-атаку с внедрением тэга инлайн-скрипта: Загрузка внешних скриптов, которые не включены в CSP, также будет пресечена: На данный момент в перечне URL нельзя прописывать пути http: Зато поддерживаются символы подстановки, так что вы можете описать сразу все поддомены http: Директивы не наследуют права от предыдущих директив. В следующем примере default-src и style-src содержат ключевое слово self , а script-src и style-src содержат домен http: Помимо списков доменов, директивы script-src и style-src поддерживают ключевые слова unsafe-inline и unsafe-eval. Также это ключевое слово разрешает инлайн-атрибуты CSS style , инлайн-обработчики событий onclick, onmouseover и т. То есть при отсутствии ключевого слова unsafe-inline все инлайн-тэги style и script будут блокироваться. Если это ключевое слово не указано, то блокируется любая динамическая оценка кода, включая использование eval , конструктор функций и передачу строковых в setTimeout и setInterval. Поддержка браузерами На текущий момент большинство браузеров и их версий уже поддерживают CSP 1. Судя по всему, поддерживается только опциональная директива sandbox. Получение отчётов о нарушениях CSP Как уже упоминалось, сообщения обо всех нарушениях политики безопасности логгируются в консоли браузера. Это удобно, пока вы только разрабатываете сайт, но после развёртывания нужен более практичный способ получения отчётов о нарушениях. Для этого можно использовать директиву report-uri. Каждый раз, когда регистрируется нарушение CSP, директива отправляет на указанный адрес запрос HTTP POST. В теле запроса содержится JSON-объект, в котором указаны все необходимые подробности. Допустим, у нас есть такая CSP: Но нам нужно использовать сервис Google Analytics, который будет пытаться скачивать JavaScript с www. А это уже нарушение нашей CSP. В этом случае report-uri отправит запрос со следующим JSON: В этом случае CSP будет регистрировать нарушения без какого-либо блокирования ресурсов. Можно даже использовать одновременно Content-Security-Policy и Content-Security-Policy-Report-Only , обкатывая на второй те или иные конфигурации. Прописывание заголовка HTTP-заголовок можно прописать прямо в конфигурационных файлах на сервере: PHP example header "Content-Security-Policy: А теперь вариант Twitter: CSP Level 2 Также является кандидатом в рекомендации. В CSP Level 2 сделаны следующий нововведения: Вместо frame-src теперь применяется child-src. Работает как заголовок X-Frame-Options, для замены которого, вероятно, и предназначен. В JSON, содержащихся в отчётах о нарушениях, появились два новых поля: HTTP-код состояния запрошенного ресурса. Если нарушающий запрос делался не через HTTP, то ставится 0. Также в CSP Level 2 появилась возможность разрешать инлайн-скрипты и стили с помощью nonce-значений и хэшей. Nonce — это генерируемая случайным образом на сервере строковая переменная. Она добавляется в CSP-заголовок: Пример хэша, сгенерированного из строковой console. Приведённый выше хэш позволяет выполнить скрипт: Также было бы интересно узнать о нестандартных задачах, которые вы решали с помощью CSP. Добавить в закладки NIX Solutions рейтинг 81, Метки лучше разделять запятой. Пробовали внедрять на своих проектах. В итоге по статистике собранных отчетов мы помогали 0. На мобильных платформах вообще практически не поддерживается. Посмотрел помимо facebook и twitter еще несколько крупных проектов — везде используются unsafe-unline, unsafe-eval. Разве с такими директивами не получается защита чисто психологическая? Сам внедрял — но только для админ-панели. В этом случае, даже если в каком-то браузере сломается — не сильно критично, безопасность важнее. Есть проблема с шаблонизаторами, т. Что бы обезопасить себя — вынес небезопасный код в webworker-песочницу с отдельной политикой безопасности можно только исполнятся и ничего более, на выходе — строка с готовым шаблоном, доступ имеет только к минимально-необходимой части данных. Столкнулся с проблемой в Firefox — он не понимает отдельную политику для WebWorker как это делает, к примеру, Chrome. Хотя согласно спеке — должен. Кому интересно — сюда , особенно неплохо будет если за баг проголосуют что бы хоть какие-то подвижки были, а то у Firefox всё плохо с рассмотрением багов. А так — CSP это путь в безопасное будущее веба, если будет работать согласно спецификации. Пока что, к сожалению — только простейшие случаи. А то unsafe-inline или unsafe-eval директивы ломают весь смысл использования CSP. PS ведётся разработка CSP 3. Я вот например подметил что нет возможности задать nonce для веб-воркера , хотя для всех остальных скриптов это можно сделать. Как раз сейчас заинтересовался этим вопросом. Отключить scp-report можно так: Дата основания год Локация Харьков Украина Сайт nixsolutions. Register to meet Igor from nixsolutions and our other speakers https: News, analysis, insight, opinion, reports, events. Волшебное введение в алгоритмы классификации 6,8k 1. Сутки Неделя Месяц Уязвимость ВКонтакте: Интересные публикации Хабрахабр Geektimes. Секрет дешёвых светодиодных ламп GT. Первый в мире мобильный телефон без аккумуляторов работает по образцу советского шпионского жучка х годов GT. Tesla построит в Южной Австралии крупнейшую в мире аккумуляторную систему всего за дней GT. Разделы Публикации Хабы Компании Пользователи Песочница. Информация О сайте Правила Помощь Соглашение Конфиденциальность. Услуги Реклама Тарифы Контент Семинары.


Отключить тачпад на ноутбуке тошиба
Схема электропроводки в частном
Мкр южный всеволожск карта
Как в домашних условиях определить молочницу
Невыдуманные истории квартира
Описание героев юность
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment