Выбор ответа Senior WebSocket и SSE обновлено
WebSocket и CORS
Вопрос
WebSocket-сервер авторизует пользователя по куке сессии. Что верно про безопасность?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: CORS на WebSocket не действует, сервер сам проверяет Origin при handshake. Браузер позволяет любой странице открыть WebSocket на любой хост и приложит куки по правилам SameSite.
Варианты ответа
- CORS защищает WebSocket так же, как fetch, поэтому чужой сайт к нему не подключится
- Браузер никогда не отправляет куки при WebSocket handshake, поэтому сессию не угнать
- Достаточно использовать
wss://: тогда открыть канал может только страница своего сайта - CORS на WebSocket не действует, сервер сам проверяет
Originпри handshakeправильный ответ
Разбор
Браузер позволяет любой странице открыть WebSocket на любой хост и приложит куки по правилам SameSite. Сервер получит Origin и обязан его проверить: иначе возможна атака Cross-Site WebSocket Hijacking. Варианты про CORS и «куки никогда не шлются» неверны. wss:// шифрует канал, но не ограничивает, кто его открывает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.