Правило ограничения домена (Same Origin Policy, ) - это важная концепция в модели безопасности веб-приложений. В рамках этой политики веб-браузер позволяет скриптам, находящимся на одной веб-странице получить данные на второй веб-странице, но только если обе веб-страницы имеют одинаковый источник (Origin). Источник состоит из комбинации URI схемы, имени домена и номера порта. Политика ограничивает вредоносным скриптам с одной веб-страницы получение доступа к чувствительной информации на другой веб-странице через DOM-дерево данной страницы.

Этот механизм имеет особое значение для современных веб-приложений, которые в значительной степени зависят от файлов HTTP cookie для поддержания аутентифицированных пользовательских сеансов. Поскольку сервера действуют на основе файлов HTTP cookie для раскрытия конфиденциальной информации или выполнения действий по изменению состояния на стороне клиента должно поддерживаться строгое разделение контента, предоставляемого несвязанными сайтами, чтобы предотвратить потерю конфиденциальных данных или нарушение целостности данных.

Очень важно помнить, что принцип одинакового источника применим только к скриптам. Это означает, что такие ресурсы, как изображения, CSS и динамически-загружаемые скрипты могут быть доступны из любого источника через соответствующие HTML-теги (исключение составляют шрифты). Атаки основываются на том факте, что принцип одинакового источника не применяется к HTML-тегам.

История Концепция принципа одинакового источника была представлена Netscape Navigator 2.02 в 1995 году, вскоре после представления JavaScript в Netscape 2.0. JavaScript позволял использовать скрипты на веб-страницах, в частности, получить программный доступ к Document Object Model (DOM).

Принцип изначально был разработан для защиты доступа до DOM, но с тех пор он был расширен для защиты конфиденциальных частей глобальных объектов JavaScript.

Проверочная таблица Для иллюстрации, следующая таблица даёт обзор типичных проверок для сравнения с примером URL «http://www.example.com/dir/page.html».

Сравниваемый URL Проверка Причина http://www.example.com/dir/page.html Тот же протокол и домен http://www.example.com/dir2/other.html Тот же протокол и домен http://username:[email protected]/dir2/other.html Тот же протокол и домен http://www.example.com:81/dir/other.html Тот же протокол и домен, но другой порт https://www.example.com/dir/other.html Отличается протокол http://en.example.com/dir/other.html Отличается домен http://example.com/dir/other.html Отличается домен (требуется полное соответствие) http://v2.www.example.com/dir/other.html Отличается домен (требуется полное соответствие) http://www.example.com:80/dir/other.html Явное указание порта. Зависит от реализации в браузере.

См. также Межсайтовый скриптинг Межсайтовая подделка запроса

Ссылки A detailed comparison of several flavors of same-origin policies A review of deficiencies in same-origin policies and their implication for web security Sample vendor-provided same origin policy specification Defeating, breaking and bypassing The Same Origin Policy

Категория:Веб-программирование Категория:Компьютерная безопасность Категория:AJAX