Выбор ответа Senior Заголовки и cookies обновлено
CORS с cookie
Вопрос
Сервер отвечает Access-Control-Allow-Origin: * и Access-Control-Allow-Credentials: true. Фронтенд шлёт запрос с credentials: "include". Что будет?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Браузер заблокирует ответ: звёздочка запрещена для запросов с учётными данными. Для запросов с cookie или авторизацией браузер требует точный origin в Access-Control-Allow-Origin, звёздочка не подходит.
Варианты ответа
- Браузер заблокирует ответ: звёздочка запрещена для запросов с учётными даннымиправильный ответ
- Всё сработает: звёздочка разрешает любой origin, а
Allow-Credentialsдобавляет cookie - Браузер молча отправит запрос без cookie и покажет ответ как анонимный
- Сервер вернёт 403, потому что получил cookie с чужого origin
Разбор
Для запросов с cookie или авторизацией браузер требует точный origin в Access-Control-Allow-Origin, звёздочка не подходит. Сервер обычно отражает Origin из белого списка. Отсюда security-проверка: если сервер отражает любой Origin вместе с Allow-Credentials: true, это уязвимость, чужой сайт сможет читать ответы от имени пользователя.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.