Зачем в HTTP-куках используется атрибут HttpOnly
Краткий ответ
Атрибут HttpOnly ограничивает доступ к cookie только для HTTP-протокола, блокируя доступ через JavaScript. Это снижает риск кражи сессионных данных при XSS-атаках и повышает безопасность веб-приложений.
Развёрнуто
Краткий ответ
Атрибут HttpOnly предназначен для защиты cookie от доступа через клиентский JavaScript. Это помогает предотвратить кражу сессионных или других чувствительных данных в случае XSS-уязвимостей.
Как это работает
Когда в HTTP-заголовке Set-Cookie указывается атрибут HttpOnly, браузер запрещает доступ к этому cookie через объекты document.cookie в JavaScript. Таким образом, даже если злоумышленник внедрит вредоносный скрипт на страницу, он не сможет прочитать или изменить такие cookie, что уменьшает риск компрометации сессии.
| Атрибут cookie | Доступ через JavaScript | Использование |
|---|---|---|
| Без HttpOnly | Разрешён | Обычные cookie, которые нужны JS |
| С HttpOnly | Запрещён | Сессионные, безопасность, авторизация |
Пример
Set-Cookie: sessionId=abc123; Path=/; HttpOnly
Этот заголовок задаёт cookie с именем sessionId, которая доступна только для HTTP-запросов и не видна в JavaScript.
Что важно знать на собеседовании
HttpOnlyпредотвращает доступ к cookie черезdocument.cookie.- Защищает от эксплойтов XSS, блокируя кражу сессионных данных.
- Является простым, но важным элементом обеспечения безопасности веб-приложений.
- Не защищает cookie от перехвата в сетевом трафике — для этого нужен
Secureи HTTPS. - Используется совместно с другими атрибутами cookie для комплексной защиты.
Тема: HTTP, REST и API | Уровень: middle