Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Правило ограничения домена Same-origin policy SOP (политика одинакового источника) кратко

Лекция



Привет, Вы узнаете о том , что такое правило ограничения домена same-origin policy sop политика одинакового источника , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое правило ограничения домена same-origin policy sop политика одинакового источника , настоятельно рекомендую прочитать все из категории Вредоносное ПО и защита информации.

Правило ограничения домена (Same Origin Policy, в переводе с англ. — «Принцип одинакового источника») — это важная концепция безопасности для некоторых языков программирования на стороне клиента, таких как JavaScript. Политика разрешает сценариям, находящимся на страницах одного сайта, доступ к методам и свойствам друг друга без ограничений, но предотвращает доступ к большинству методов и свойств для страниц на разных сайтах. Одинаковые источники — это источники, у которых совпадают три признака:

  1. домен;
  2. порт;
  3. протокол.

Политика same-origin определяет как документ или скрипт,загруженный из одного источника (origin) может взаимодействовать с ресурсом из другого источника(origin). Это критический механизм безопасности для для изоляции потенциально опасных документов.

Определение origin

Две страницы имеют одинаковый origin (источник) если протокол , порт (если указан), и хост одинаковы для обоих страниц. Время от времени, вы можете видеть это как "scheme/host/port tuple" (где "tuple" переводится как кортеж или запись набор из трех компонент, котоорые вместе составляют единое целое).

В следующей таблице даны примеры origin-сравнений с URL http://store.company.com/dir/page.html:

URL результат причина
http://store.company.com/dir2/other.html успех
http://store.company.com/dir/inner/another.html успех
https://store.company.com/secure.html недостаточность Различные протоколы
http://store.company.com:81/dir/etc.html недостаточность Разный порт
http://news.company.com/dir/other.html недостаточность Разный хост

Смотрите также origin definition for file: URLs.

Проверочная таблица

Для иллюстрации, следующая таблица дает обзор типичных проверок для сравнения с примером 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 Не определено Явное указание порта. Зависит от реализации в браузере.

Наследование origins

Содержимое about:blankи javascript:URL-адреса наследуют источник от документа, загружающего URL-адрес, поскольку сам URL-адрес не дает никакой информации о происхождении. Об этом говорит сайт https://intellect.icu . data:URL-адреса получают новый, пустой, контекст безопасности.

Примечание: Перед Gecko 6.0 , dataURL , унаследованной контекст безопасности текущей страницы в окне браузера , если пользователь вводит dataURL в адресную строку.

Исключения IE

Internet Explorer имеет два основных исключения, когда дело доходит до той же политики происхождения

  • Целевые зоны: если оба домена находятся в зоне высокой степени доверия, например, корпоративные домены, то те же ограничения происхождения не применяются
  • Порт: IE не включает порт в компоненты Same Origin, поэтому http://company.com:81/index.html и http://company.com/index.html рассматриваются с одного и того же источника и не применяются ограничения ,

Эти исключения являются нестандартными и не поддерживаются ни в одном другом браузере, но были бы полезны при разработке приложения для веб-приложения на базе Windows RT (или) на основе IE.

Изменение происхождения

Страница может изменить свое происхождение с некоторыми ограничениями. Сценарий может установить значение document.domainдля текущего домена или супердомена текущего домена. Если он устанавливает его в супердомен текущего домена, более короткий домен используется для последующих проверок происхождения. Например, предположим, что скрипт в документе http://store.company.com/dir/other.htmlвыполняет следующую инструкцию:

document.domain = "company.com";

После выполнения этого утверждения страница может передать проверку происхождения http://company.com/dir/page.html(при условии, что она http://company.com/dir/page.htmlустанавливает document.domainзначение « company.com», чтобы указать, что она хочет это разрешить - см. document.domainБольше). Тем не менее, company.comможет не установить , document.domainчтобы othercompany.comтак , что не является супердомен company.com.

Номер порта хранится отдельно браузером. Любой вызов сеттера, в том числе document.domain = document.domainвызывает перезапись номера порта null. Поэтому один не может сделать company.com:8080разговор с company.comпомощью только установив document.domain = "company.com"в первом. Он должен быть установлен как для обоих номеров портов null.

Примечание. При использовании, document.domainчтобы позволить субдомену безопасно обращаться к своему родителю, вам необходимо установить document.domainодно и то же значение как в родительском домене, так и в субдомене. Это необходимо, даже если это просто возвращает родительский домен к его исходному значению. Несоблюдение этого может привести к ошибкам разрешения.

Межсетевой доступ к сети

Политика одинакового происхождения контролирует взаимодействия между двумя разными источниками, например, когда вы используете XMLHttpRequestили <img>элемент. Эти взаимодействия обычно подразделяются на три категории:

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

Вот несколько примеров ресурсов, которые могут быть внедрены в кросс-происхождение:

  • JavaScript с <script src="..."></script>. Сообщения об ошибках для синтаксических ошибок доступны только для сценариев одинакового происхождения.
  • CSS с <link rel="stylesheet" href="...">. Из-за непринужденных синтаксических правил CSS, CSS с кросс-началом требует правильного Content-Typeзаголовка. Ограничения зависят от браузера: IE , Firefox , Chrome , Safari (прокрутите вниз до CVE-2010-0051) и Opera .
  • Изображения с <img>. Поддерживаемые форматы изображений включают PNG, JPEG, GIF, BMP, SVG, ...
  • Файлы мультимедиа с <video>и <audio>.
  • Плагины с <object>, <embed>и <applet>.
  • Шрифты с @font-face. Некоторые браузеры позволяют использовать шрифты с кросс-оригиналом, другие - шрифты одинакового происхождения.
  • Все , что с <frame>и <iframe>. Сайт может использовать X-Frame-Optionsзаголовок, чтобы предотвратить эту форму взаимодействия с кросс-началом.

Как разрешить доступ к перекрестному соединению

Используйте CORS, чтобы разрешить доступ к кросс-началу.

Как заблокировать доступ к перекрестному соединению

  • Чтобы предотвратить перекрестные записи, проверьте наличие неопознанного токена в запросе, известного как токен межсайтового запроса (CSRF) . Вы должны предотвращать перекрестные чтения страниц, которые знают этот токен.
  • Чтобы предотвратить перекрестное считывание ресурса, убедитесь, что он не встраивается. Часто бывает необходимо предотвратить внедрение, поскольку вложение ресурса всегда утечки некоторой информации об этом.
  • Чтобы предотвратить внедрение в кросс-начале, убедитесь, что ваш ресурс нельзя интерпретировать как один из встраиваемых форматов, перечисленных выше. В Content-Typeбольшинстве случаев браузер не соблюдает . Например, если вы укажете <script>тег в документе HTML, браузер попытается проанализировать HTML как JavaScript. Когда ваш ресурс не является точкой входа на ваш сайт, вы также можете использовать токен CSRF для предотвращения внедрения.

Доступ к API-интерфейсу Cross-origin

JavaScript API , такие как iframe.contentWindow, window.parent, window.openи window.openerпозволяют документы непосредственно ссылаться друг на друга. Если два документа не имеют одинакового происхождения, эти ссылки обеспечивают очень ограниченный доступ Windowи Locationобъекты, как описано в следующих двух разделах.

Для связи между документами из разных источников используйте window.postMessage.

Окно

Спецификация: http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-window .

WindowДопускается доступ к свойствам, доступным по нескольким причинам:

методы
window.blur
window.close
window.focus
window.postMessage
Атрибуты
window.closed Только чтение.
window.frames Только чтение.
window.length Только чтение.
window.location Читай пиши.
window.opener Только чтение.
window.parent Только чтение.
window.self Только чтение.
window.top Только чтение.
window.window Только чтение.

Некоторые браузеры позволяют получить доступ к большему количеству свойств, чем позволяет спецификация.

Место нахождения

Спецификация: http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-location .

LocationДопускается доступ к свойствам, доступным по нескольким причинам:

методы
location.replace
Атрибуты
URLUtils.href Напишите только.

Некоторые браузеры позволяют получить доступ к большему количеству свойств, чем позволяет спецификация.

Доступ к хранилищу данных с перекрестным доступом

Доступ к данным, хранящимся в браузере, например localStorage и IndexedDB , разделяется по происхождению. Каждое происхождение получает свое отдельное хранилище, а JavaScript в одном источнике не может читать или записывать на хранение, принадлежащее другому источнику.

Cookies используют отдельное определение происхождения. Страница может устанавливать cookie для своего домена или любого родительского домена, если родительский домен не является общедоступным суффиксом. Firefox и Chrome используют публичный список суффикса, чтобы определить, является ли домен общедоступным суффикс. Internet Explorer использует свой собственный внутренний метод, чтобы определить, является ли домен публичным суффикс. Браузер сделает cookie доступным для данного домена, включая любые поддомены, независимо от того, какой протокол (HTTP / HTTPS) или порт используется. Когда вы устанавливаете файл cookie, вы можете ограничить его доступность с помощью флагов Domain, Path, Secure и Http-Only. Когда вы читаете файл cookie, вы не можете видеть, откуда он был установлен. Даже если вы используете только безопасные соединения https, любой файл cookie, который вы видите, может быть установлен с использованием небезопасного соединения.

Смотрите также

  • Политика одинакового происхождения для файла: URI
  • Политика одинакового происхождения в W3C

Анализ данных, представленных в статье про правило ограничения домена same-origin policy sop политика одинакового источника , подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое правило ограничения домена same-origin policy sop политика одинакового источника и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Вредоносное ПО и защита информации

создано: 2018-04-03
обновлено: 2024-11-14
32



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Информационная безопасность, Вредоносное ПО и защита информации

Термины: Информационная безопасность, Вредоносное ПО и защита информации