Почему та же политика происхождения для XMLHttpRequest

StackOverflow https://stackoverflow.com/questions/1830050

Вопрос

Почему браузеры применяют одну и ту же политику происхождения к XMLHttpRequest?Это действительно неудобно для разработчиков, но, похоже, это мало что дает для остановки хакеров.Есть обходные пути, они все равно могут включать JavaScript из внешних источников (сила JSONP).

Это похоже на устаревшую «функцию» в сети, которая в значительной степени взаимосвязана.

Это было полезно?

Решение

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

Поскольку размещение секретных токенов на страницах веб-приложений — это способ остановить простые атаки межсайтовой подделки запросов, это означает, что Attacker.com может предпринимать любые действия на странице, которые пользователь мог бы на example.com, без какого-либо согласия или взаимодействия с их стороны.Global XMLHttpRequest — это глобальный межсайтовый скриптинг.

(Даже если у вас есть версия XMLHttpRequest, которая не прошла аутентификацию, проблемы все равно остаются.Например, злоумышленник может отправлять запросы на другие частные компьютеры в вашей интрасети и читать любые файлы, которые он может загрузить с них, которые могут не предназначаться для публичного использования. <script> теги уже страдают от ограниченной формы такого рода уязвимости, но полностью читаемые ответы XMLHttpRequest могут привести к утечке всех типов файлов вместо нескольких неудачно созданных файлов, которые можно проанализировать как JavaScript.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top