Русская Википедия:Правило ограничения домена
Правило ограничения домена (Same Origin Policy, Шаблон:Trf) - это важная концепция в модели безопасности веб-приложений. В рамках этой политики веб-браузер позволяет скриптам, находящимся на одной веб-странице получить данные на второй веб-странице, но только если обе веб-страницы имеют одинаковый источник (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:password@www.example.com/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 Шаблон:Wayback
- A review of deficiencies in same-origin policies and their implication for web security
- Sample vendor-provided same origin policy specification Шаблон:Wayback
- Defeating, breaking and bypassing The Same Origin Policy