Объясните, пожалуйста, зачем по умолчанию запрещены аякс запросы на другие домены? Ведь любой злоумышленник может проксировать запрос через бэкэнд или, например, изменить hosts и открыть свой сайт под чужим доменом.
WebDev, может я конечно недопонял, что вы имеете ввиду, но так в чем проблема с запросами злоумышленника со своего ПК? Пусть шлет запросы на любые домены со своими куками и меняет hosts как хочет. Смысл ведь в том, чтобы у сторонних сайтов не было возможности слать запросы на чужие домены именно с вашими куками. То есть условно говоря зайдя на сайт злоумышленника он бы мог отправить AJAXом например POST-запрос на какой нибудь Qiwi под вашими куками и перевести деньги на свой кошелек.
Если я правильно понимаю, это работает так:
Я публикую на каком-нибудь сайте зловредный код, пользователь заходит, у него загружается и выполняется мой код, а в коде, например, идет запрос к апи уже от имени пользователя.
У меня на сайте авторизация через токен, который хранится в localStorage. Данные из localStorage доступны только по определенному домену. То есть, если пользователь зайдет на сайт со зловредным кодом, запрос не сможет выполниться от от его имени, я прав?
Алексей Тен, Допустим, Тостер не фильтрует посты от XSS, я публикую вопрос, в который вставляю js кд, который делает аякс запрос на сайт сбербанка на перевод денег на мою карту. Теперь браузеры пользователей, которые заходят на страницу с моим вопросом, загружают код из моего вопроса и исполняю его. Если пользователь в этом время авторизован на сайте сбербанка, то запрос проходит и я получаю деньги.
XSS атака ведь так выглядит? Понятно что пример утрирован, но ведь идея именна в этом?
Теперь вопрос: Как зловредный скрипт с Тостера сможет получить доступ к моему localStorage на домене сбербанка?
Ну описано примерно верно.
Конкретно со сбером такая атака возможно и не прокатит, но есть множество сайтов которые с простой авторизацией по кукам которые браузеры самостоятельно отправляют при любом запросе. И твоему скрипту их знать совершенно не нужно.
Запрет на доступ по умолчанию защищает в первую очередь такие сайты.
WebDev, XSS дыра на вашем ресурсе страшна для ваших посетителей в любом случае.
XSS где-нибудь на тостере для вас менее опасен, если у вас токены, а не куки. Но стопроцентной защиты это не дает, имхо.
Они не запрещены. Просто сервер, к которому ты хочешь обратиться, не хочет этого. Браузер это понимает и блокирует запрос. Вот и все. Если сервер разрешит, то браузер поймет и не заблокирует запрос.