Главная Новости

Buying an insurance policy

Опубликовано: 20.10.2020

Одним из главных принципов безопасности браузеров и веба в целом является Same Origin Policy — дословно «политика единого источника» (устоявшегося термина до сих пор не существует). Ее суть заключается в проверке трех компонентов, из которых состоит origin: протокол, хост и порт. Если страница http://test1, подробнее тут https://travel.ic-ekta.com/.ru/a.html пытается получить доступ к DOM страницы http://test2.ru/b.html, то у нее ничего не выйдет, так как хосты отличаются. Если бы SOP не существовал, любой сайт мог бы делать запросы на произвольные адреса и получать оттуда данные, что, как подсказывает логика, не есть хорошо. Причем страдали бы все: как пользователи, чьи персональные данные летали бы без принуждения, так и владельцы ресурсов, — в общем, в вебах творился бы полный хаос. Поэтому Same Origin Policy всех спасает и все счастливы. Однако есть одно но: что, если на страницу http://test1.ru/a.html внедрен злой скрипт с сайта http://test2.ru/, который делает плохие штуки в контексте браузера жертвы? В данном случае SOP бесполезен, ибо на < script src=”. .. ”> политика не распространяется. Что же делать?

На помощь приходит новый стандарт — Content Security Policy, основное предназначение которого состоит в том, чтобы защитить пользователя от угроз межсайтового выполнения сценариев. Изначальный вариант спецификации был разработан в Mozilla Foundation. Первым браузером с поддержкой CSP стал Firefox 4.0, который вышел в марте 2011 года. С конца 2012 года CSP 1.0 находится в W3C на стадии принятия как веб-стандарта. На данный момент разрабатывается спецификация CSP 1.1. Согласно статистике сайта statcounter.com, на момент написания статьи полную поддержку Content Security Policy имели более 60% браузеров по всему миру.

Buying an insurance policy

Флагманами выступают Firefox и Chrome, которые раньше всех внедрили реализацию CSP в качестве экспериментальной фичи и с недавнего времени перешли на полную поддержку. В техническом плане это означает, что директивы CSP помещались во временный HTTP-заголовок с префиксом (X-Content-Security-Policy в Firefox и X-WebKit-CSP в Chrome), а сейчас используется стандартный заголовок (Content-Security-Policy). В Internet Explorer по традиции все печально: CSP работает только с версии 10.0 и в очень урезанном виде.

rss