Выбор ответа Middle CSRF, SameSite и CORS спрашивают часто обновлено

CORS и CSRF

Вопрос

Сервер не отдаёт заголовков CORS для чужих origin. Защищает ли это от CSRF через форму POST?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Нет: CORS ограничивает чтение ответа, а POST из формы уйдёт без preflight. Same-origin policy и CORS управляют тем, может ли чужой скрипт прочитать ответ.

Варианты ответа

  1. Да: без заголовков CORS браузер не отправит межсайтовый запрос на сервер
  2. Да, но только для форм с JSON: остальные content-type браузер не пустит
  3. Нет: CORS ограничивает чтение ответа, а POST из формы уйдёт без preflightправильный ответ
  4. Нет, потому что CORS проверяется в Firefox, а Chrome его игнорирует

Разбор

Same-origin policy и CORS управляют тем, может ли чужой скрипт прочитать ответ. Простые запросы (формы с обычными content-type) отправляются без предварительного запроса. Для application/json через fetch браузер сделает preflight, но формы сервер тоже может принимать. CORS поддерживают все браузеры.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме