🎯 Зачем спрашивают
- Проверить базовые знания веба и протоколов HTTP, без которых фронтенд-разработчику трудно ориентироваться в безопасности и работе с сетью.
- Убедиться, что кандидат понимает: cookies — это не просто «место хранения», а механизм передачи данных между клиентом и сервером.
- Проверить знание флагов безопасности (
HttpOnly,Secure,SameSite) и понимание, как они помогают против XSS/CSRF.
- Оценить умение кандидата отличать cookies от других способов хранения данных в браузере (localStorage, sessionStorage).
- Сигнал: кандидат умеет думать не только о «где хранить токен», но и о безопасности и производительности.
📝 Ответ
Cookies — это механизм хранения данных на клиенте, которые автоматически отправляются на сервер при каждом запросе к соответствующему домену для поддержания сессий.
Реализован как key-value хранилище.
Чаще всего в них хранят:
- авторизационные токены
- метки аб-тестов
- метки для рекламных и маркетинговых компаний.
Каждой cookie можно задать следующие настройки:
- Domain — домен, на который назначается кука
- Expires/Max-Age — срок жизни
- HttpOnly — Можно ли получить доступ к куке через JS код
- Secure — отправлять ли куку только при открытом HTTPS соединении
- Path — ограничивает доступ к cookie только для определённого пути.
- SameSite — предотвращает CSRF, задаёт правила отправки cookie при кросс-доменных запросах (
Strict,Lax,None).
Cookies может устанавливать как клиент, так и сервер (через HTTP заголовок Set-Cookies).
⚖️ Компромиссы
✅ Плюсы | ❌ Минусы |
Автоматически отправляются серверу | Ограничение по размеру (~4 KB) |
Поддерживаются всеми браузерами | Отправляются на каждый запрос → увеличивают вес трафика |
Могут устанавливаться сервером | Подвержены атакам, если не грамотно не настроить |
🔎 Встречные вопросы
- В чем разница между localStorage и cookies?
- Что такое SameSite и зачем он нужен?
- Чем HttpOnly отличается от обычных cookie?
- Когда выбрать cookie vs localStorage vs sessionStorage?
🚩 Красные флаги
- Cookies — это то же самое, что localStorage (нет понимания автоматической передачи на сервер и различий в механике).
- Cookies — это только для авторизации (игнорируют A/B тесты, трекинг, user prefs).
- Cookies — это база данных в браузере (переоценка возможностей; забывают про ограничение ~4KB).
- Не упоминает флаги безопасности (HttpOnly, Secure, SameSite) — значит, не понимает рисков XSS/CSRF.
- Cookies можно хранить сколько угодно данных (не знает про лимиты и ограничения браузеров).
- Считает, что «cookies всегда устанавливает только сервер» (забывает про
document.cookieна клиенте).
- Cookies безопаснее localStorage без контекста (не упоминает именно HttpOnly как ключевую защиту).