Я работаю над API авторизации, который моя компания хотела бы использовать как внутри, так и в качестве внешнего API для некоторых наших клиентов. Мы бы предпочли не вносить в белый список все домены, из которых может исходить запрос, но это, по-видимому, поведение веб-браузеров по умолчанию, предназначенное для принудительного применения, когда параметр XHR withCredentials
равен true
.
Мы можем обойти эту проблему, заставив наш API возвращать то, что заголовок Origin
запроса содержит в качестве значения Access-Control-Allow-Origin
заголовка ответа API, но это, очевидно, то, что якобы настолько опасно, поэтому яне уверен, что мы должны делать это. Может быть, в нашей ситуации это совершенно безопасно, но я не могу понять природу потенциальной атаки, пока не могу сказать.
Согласно этой статье:
https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties
... такого рода поведение CORS было достаточно эксплуатируемым, чтобы автор мог легко украсть биткойны других людей из обмена биткойнов.
Но как? Для меня статья не проясняет это.
Есть ли какая-то другая уязвимость помимо проблемы CORS, которая необходима? Глядя на примеры, PDF слайд-презентации, которая идет вместе со статьей, и ссылочную статью на http://ejj.io/misconfigured-cors/, Я не до конца понимаю, где доступ к информации или учетным данным какого-либо другого пользователя проскальзывает в изображение.
На приведенной выше схеме мне кажется, что «evil.com» каким-то образом обманом заставил бы пользователя обменять биткойны на evil.com. сначала проверять учетные данные, прежде чем CORS войдет в картину, и если evil.com может сделать это уже, разве проблема CORS только не усугубит и без того очень плохую ситуацию?
Я уверен, что это можетне было бы так просто, иначе никто бы не поднял тревогу по поводу полностью открытой политики происхождения, но я не могу понять, чего мне здесь не хватает.
Есть ли что-то, где, скажем, просто иметьодна страница браузера, открытая для evil.com, когда пользователь также посещает биржу биткойнов, позволяет передавать данные cookie-файлов на evil.com? Похоже, это тоже было бы большой проблемой, CORS или нет CORS.