Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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