Какой смысл анти-междоменной политики? - PullRequest
7 голосов
/ 24 июня 2010

Почему создатели HTML DOM и / или Javascript решили запретить междоменные запросы?

Я вижу некоторые очень незначительные преимущества безопасности, связанные с его запретом, но в долгосрочной перспективе это, похоже, попытка сделать атаки Javascript-инъекцией менее мощными. Это все равно спорный вопрос с JSONP, это просто означает, что Java-код чуть-чуть более трудно сделать, и вы должны иметь на стороне сервера сотрудничества (хотя это может быть ваш собственный сервер)

Ответы [ 4 ]

11 голосов
/ 24 июня 2010

Фактическая междоменная проблема огромна. Предположим, что SuperBank.com внутренне отправляет запрос на http://www.superbank.com/transfer?amount=100&to=123456, чтобы перевести $ 10 000 на номер счета 123456. Если я могу получить вас на моем веб-сайте, и вы вошли в SuperBank, все, что мне нужно сделать, это отправить запрос AJAX в SuperBank. com, чтобы перевести тысячи долларов с вашего счета на мой.

Причина, по которой JSON-P является приемлемым, заключается в том, что злоупотреблять им чертовски невозможно. Веб-сайт, использующий JSON-P, в значительной степени объявляет данные общедоступной информацией, поскольку этот формат слишком неудобен, чтобы когда-либо использоваться иначе. Но если неясно, являются ли данные общедоступной информацией, браузер должен предположить, что это не так.

9 голосов
/ 24 июня 2010

Когда междоменный сценарий разрешен (или взломан умным Javascripter), веб-страница может получить доступ к данным с другой веб-страницы. Пример: joeblow.com может получить доступ к вашей Gmail, пока у вас открыт mail.google.com. joeblow.com может прочитать вашу электронную почту, спамить ваши контакты, подделать вашу почту, удалить вашу почту или любое количество плохих вещей.

1 голос
/ 12 апреля 2012

Чтобы прояснить некоторые идеи из вопросов в конкретном случае использования.

Как правило, междоменная политика не защищает вас от вас.Он предназначен для защиты пользователей вашего веб-сайта от других пользователей вашего веб-сайта (XSS).

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

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

0 голосов
/ 24 июня 2010

Вот вам отличие: междоменный AJAX позволяет вредоносному сайту настраивать ваш браузер на действия от его имени, в то время как JSON-P позволяет вредоносному серверу вмешиваться в страницы одного домена (и заставлять браузер делать вещив этот домен от вашего имени), но (крайне важно), только если обслуживаемая страница изо всех сил пыталась загрузить вредоносную полезную нагрузку.

Так что да, JSON-P имеет некоторые последствия для безопасности, но они строго выбраны-в части сайта, использующей их.Разрешение общего междоменного AJAX открывает намного большую банку червей.

...