К списку
HTTP, REST и APIMiddleТехническое

Зачем в 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