Проверяет понимание механизма HttpOnly-cookie и того, как браузер автоматически прикрепляет их к HTTP-запросам, несмотря на недоступность из JavaScript.
HttpOnly — это атрибут cookie, который сообщает браузеру, что данная cookie не должна быть доступна через JavaScript API, в частности через document.cookie. Это ключевая мера защиты от XSS-атак: даже если злоумышленник внедрит скрипт на страницу, он не сможет прочитать сессионный токен.
Отправка cookie — это обязанность самого браузера, а не JavaScript. Браузер хранит cookie в своём внутреннем хранилище (cookie jar), привязанном к домену, пути и другим атрибутам. Когда страница инициирует любой HTTP-запрос к тому же домену — через fetch, XMLHttpRequest, переход по ссылке, загрузку картинки или отправку формы — браузер автоматически формирует заголовок Cookie и добавляет туда все подходящие cookie, включая HttpOnly.
JavaScript в этом процессе не участвует: он лишь инициирует запрос, а браузер сам решает, какие cookie прикрепить. Именно поэтому HttpOnly-cookie уходит на сервер, хотя скрипт не может её прочитать.
Сервер устанавливает cookie с флагом HttpOnly:
Set-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict; Path=/На клиенте JavaScript не увидит её:
console.log(document.cookie); // sessionId отсутствует
// Но при запросе браузер сам добавит заголовок:
fetch('/api/profile', { credentials: 'include' });
// Запрос уйдёт с заголовком:
// Cookie: sessionId=abc123Важно помнить про атрибут SameSite и флаг Secure: они ограничивают отправку cookie только HTTPS и защищают от CSRF. Также при кросс-доменных запросах нужно явно указывать credentials: 'include', иначе браузер не приложит cookie.
HttpOnly-cookie отправляются браузером автоматически на уровне сетевого стека, независимо от JavaScript. Этот механизм стоит применять для любых чувствительных данных — сессионных идентификаторов, токенов аутентификации — чтобы снизить риск их кражи через XSS.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию