Ответ 1
Поскольку XMLHttpRequest передает токены аутентификации пользователя. Если пользователь был зарегистрирован на example.com с базовым auth или некоторыми куки файлами, затем посетил сайт attacker.com, последний сайт мог бы создать XMLHttpRequest на example.com с полной авторизацией для этого пользователя и прочитать любую личную страницу, которую пользователь мог бы (тогда отправьте его обратно злоумышленнику).
Поскольку класть секретные маркеры на страницах webapp - это способ остановить простые атаки на основе межсайтового запроса-подделки, это означает, что злоумышленник может выполнять любые действия на странице, которые пользователь мог бы на example.com без какого-либо согласия или взаимодействия с их. Глобальный XMLHttpRequest - это глобальный межсайтовый скриптинг.
(Даже если у вас была версия XMLHttpRequest, которая не прошла аутентификацию, все еще есть проблемы. Например, злоумышленник может отправлять запросы другим непубличным машинам в вашей интрасети и читать любые файлы, которые он может загрузить с них которые могут не предназначаться для общественного потребления. Теги <script>
уже страдают от ограниченной формы этого вида уязвимости, но полностью читаемые ответы XMLHttpRequest будут вытеснять всевозможные файлы, а не несколько, к сожалению, созданных, которые могут анализировать как JavaScript.)