Чтобы прочитать ответ на запрос CSRF-атаки, злоумышленнику потребуется заставить жертву выполнить свой код JavaScript. И в этом случае доступ будет ограничен некоторыми Одинаковыми политиками происхождения .
Если предположить, что атакующий запрос действительно перекрестное происхождение , Политика одинакового происхождения для DOM запрещает доступ через DOM (например, при внедрении с использованием iframe
) и Кросс-запрос Общий ресурс источника (CORS) регулирует запросы между источниками через XMLHttpRequest следующим образом:
Если запрос является простым перекрестным запросом , т.е. е. простой метод только с простыми полями заголовка , тогда этот запрос будет отправлен (аналогично CSRF на основе HTML). Но доступ к ответу простого запроса между источниками зависит от того, позволяет ли ответ совместно использовать ресурсы .
Для других запросов из разных источников требуется так называемый предварительный просмотр перед отправкой фактического запроса. Этот запрос отправляется для проверки того, разрешает ли сервер запросы от источника, из которого отправляется предпечатная проверка. И только если предварительная проверка успешна и ответ на фактический запрос позволяет совместное использование ресурсов, к ответу можно получить доступ.
Итак, сделаем вывод: если ваш сервер не поддерживает CORS и явно не разрешает совместное использование с любым другим источником (т. Е. Access-Control-Allow-Origin: *
), ответ CSRF - если запрос вообще был разрешен - не будет читаемым атакующим сайт.