Выбор ответа Middle CORS обновлено
CORS и CSRF
Вопрос
Чужой сайт содержит HTML-форму, которая отправляет POST на https://bank.ru/transfer с полями application/x-www-form-urlencoded. У банка CORS не настроен. Что верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Запрос уйдёт, и с кукой сессии перевод может пройти: защищают SameSite и CSRF-токены. Отправка формы это простой запрос, preflight для него нет, и SOP не мешает отправить, а мешает только прочитать ответ.
Варианты ответа
- Запрос не уйдёт: без настроенного CORS браузер блокирует любые кросс-доменные POST формы
- Перед отправкой будет preflight OPTIONS, банк не ответит на него, и перевод не выполнится
- Запрос уйдёт, и с кукой сессии перевод может пройти: защищают SameSite и CSRF-токеныправильный ответ
- Запрос уйдёт, но браузер не приложит куки к кросс-доменной форме, поэтому опасности нет
Разбор
Отправка формы это простой запрос, preflight для него нет, и SOP не мешает отправить, а мешает только прочитать ответ. Атакующему ответ не нужен, ему нужен побочный эффект. Поэтому от CSRF защищают SameSite-куки и CSRF-токены. Утверждение «уйдёт без кук» неверно в общем случае: кука с SameSite=None приложится, а у Lax есть исключение для навигации верхнего уровня методом GET.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.