Что такое HttpOnly cookie?
DOM и браузер
`HttpOnly` cookie — это cookie с флагом `HttpOnly`, недоступная из JavaScript. Она защищает данные (например, токены сессии) от кражи через XSS-атаки.
Что делает флаг
Cookie с HttpOnly нельзя прочитать или изменить через document.cookie — она доступна только серверу (отправляется в HTTP-запросах автоматически).
Set-Cookie: sessionId=abc; HttpOnly; Secure; SameSite=Laxdocument.cookie; // HttpOnly-cookie здесь НЕ виднаЗачем нужна
Главная угроза для токенов в браузере — XSS: если злоумышленник внедрит скрипт, он прочитает localStorage и обычные cookie. HttpOnly не даёт JS-коду добраться до cookie, поэтому украсть токен через XSS сложнее.
Сопутствующие флаги
- Secure — только по HTTPS.
- SameSite (
Strict/Lax/None) — защита от CSRF.
Вместе HttpOnly + Secure + SameSite дают надёжное хранение сессионного токена.
Ограничение
HttpOnly защищает от кражи через XSS, но не от CSRF — для этого нужен SameSite и/или CSRF-токены.
Коротко для собеседования
HttpOnly cookie недоступна из JavaScript (document.cookie её не видит) — защищает токены сессии от кражи через XSS. Используется с Secure (HTTPS) и SameSite (против CSRF). От CSRF сам по себе HttpOnly не защищает.