Выбор ответа Senior Заголовки и cookies обновлено

CORS с cookie

Вопрос

Сервер отвечает Access-Control-Allow-Origin: * и Access-Control-Allow-Credentials: true. Фронтенд шлёт запрос с credentials: "include". Что будет?

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

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

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

Коротко

Правильный ответ: Браузер заблокирует ответ: звёздочка запрещена для запросов с учётными данными. Для запросов с cookie или авторизацией браузер требует точный origin в Access-Control-Allow-Origin, звёздочка не подходит.

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

  1. Браузер заблокирует ответ: звёздочка запрещена для запросов с учётными даннымиправильный ответ
  2. Всё сработает: звёздочка разрешает любой origin, а Allow-Credentials добавляет cookie
  3. Браузер молча отправит запрос без cookie и покажет ответ как анонимный
  4. Сервер вернёт 403, потому что получил cookie с чужого origin

Разбор

Для запросов с cookie или авторизацией браузер требует точный origin в Access-Control-Allow-Origin, звёздочка не подходит. Сервер обычно отражает Origin из белого списка. Отсюда security-проверка: если сервер отражает любой Origin вместе с Allow-Credentials: true, это уязвимость, чужой сайт сможет читать ответы от имени пользователя.

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

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