Что может нам купить Same Origin Policy?

Политика одинакового происхождения (SOP) часто упоминается вместе с межсайтовым скриптингом (XSS). Но похоже, что в мире с SOP XSS все еще случается время от времени. Так что я никогда не понимаю, какие именно атаки предотвращает Same Origin Policy? Другими словами, представьте себе мир без SOP, какую еще мощь может получить злоумышленник по сравнению с реальным миром с SOP?

Я прочитал на этом веб-сайте (http://security.stackexchange.com/questions/8264/why-is-the-same-origin-policy-so-important), что «Предположим, вы вошли в Facebook и посещаете вредоносный веб-сайт в другая вкладка браузера. Без той же политики происхождения JavaScript на этом веб-сайте может делать с вашей учетной записью Facebook все, что вам разрешено. ". Это на самом деле сбивает меня с толку, потому что я никогда не слышал о каком-либо механизме для веб-страницы на одной вкладке, управляющей другими вкладками даже из того же домена. Здесь также упоминается (более подробно) (http://javascript.info/tutorial/same-origin-security-policy), что SOP не позволяет сценарию в одном окне манипулировать элементами DOM в другом окне. Но я действительно не могу соотнести этот пример с тем, что объясняется (что здесь означает окно? Кажется, что в примере говорится об iframe).

Подводя итог, можно ли привести конкретные примеры того, что могло бы произойти, если бы не было СОП?

Кроме того, мне любопытно, как сценарий в одном окне может управлять элементами DOM в другом окне, предполагая, что два окна находятся в одном домене. Но это не главный ход этого вопроса.

Спасибо!


person Awaken    schedule 16.08.2012    source источник
comment
Я думаю, что у OP такая же путаница, что и у меня. SOP применяется к двум вещам: 1. Предотвращает доступ скрипту из домена A и манипулирует свойствами или методом страниц из домена B. 2. Запрещает скрипту из домена A запускать запрос к серверу домена B. Но к пункту 2 , теперь существует стандартный CORS W3C, разрешающий исключение для междоменного запроса. Пункт 1 по-прежнему строго запрещен. Таким образом, манипулирование элементами DOM на другой вкладке на самом деле относится к точке 1, которую охватывает СОП.   -  person Aaron Shen    schedule 28.11.2014


Ответы (2)


Я никогда не слышал о каком-либо механизме для веб-страницы на одной вкладке, манипулирующей другими вкладками [...] кажется, что пример говорит об iframe

iframe - это самый простой, но не единственный способ создания межоконных скриптов. Другой способ сделать это - страница злоумышленника window.open документ из facebook.com в новую вкладку. Поскольку open возвращает дескриптор объекта window вкладки, сценарий на одной вкладке может взаимодействовать с содержимым другой вкладки.

Без СОП этот сценарий мог бы заполнять и отправлять формы на этой вкладке от вашего имени.

XSS все еще случается время от времени. Так что я никогда не понимаю, какие именно атаки предотвращает Same Origin Policy?

Без SOP каждая веб-страница уязвима для XSS, и никто никогда не сможет быть в безопасности.

С помощью SOP веб-страницы защищены от XSS , если их авторы не ошибаются. XSS все еще случается время от времени, потому что авторы сайтов, к сожалению, допускают ошибки.

person bobince    schedule 16.08.2012

Один пример: для вредоносной веб-страницы можно было бы сделать некоторые javascript-запросы ajax к другой веб-странице, где пользователь уже вошел в контекст пользователя. Эта другая страница предполагает, что запрос исходит от авторизованного пользователя. Например, сценарий malicius может выполнять несколько вызовов ajax в Facebook и публиковать новый статус или в службу банковских транзакций и выполнять перевод, если только пользователь вошел в систему Facebook или своего банка. Обычно люди открывают множество страниц во вкладках браузера одновременно, поэтому весьма вероятно, что кто-то, просматривающий вредоносную веб-страницу, одновременно войдет в какую-то конфиденциальную службу, которая может быть взломана таким образом.

person PanJanek    schedule 16.08.2012
comment
Вы имеете в виду, что пользователь вошел в Facebook в своем браузере. А вредоносный веб-сайт, например foo.com, содержит javascript для отправки http-сообщения в facebook для публикации статуса. Если пользователь заходит на foo.com, обновление статуса будет опубликовано на его / ее странице в facebook? - person Awaken; 16.08.2012
comment
@Awaken Ровно. Foo.com мог бы делать что угодно, если бы пользователь вошел в другую службу. - person PanJanek; 16.08.2012