Что такое атрибут HttpOnly у cookie?

«Что такое атрибут HttpOnly у cookie?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HttpOnly — это флаг (атрибут), который можно установить для HTTP-куки. Его основная цель — защита от краж сессионных идентификаторов через XSS-атаки (межсайтовый скриптинг).

Принцип работы:

  • Кука с атрибутом HttpOnly передается браузером на сервер и обратно только в заголовках HTTP-запросов.
  • Доступ к такой куке из JavaScript (через document.cookie) полностью блокируется. Даже если злоумышленник сможет внедрить вредоносный скрипт на страницу, он не сможет прочитать защищенную куку.

Пример заголовка Set-Cookie:

Set-Cookie: sessionid=abc123xyz; HttpOnly; Secure; SameSite=Strict

Важные моменты для тестирования безопасности:

  • Проверка: Убедиться, что критичные для аутентификации куки (например, sessionId, token) установлены с флагом HttpOnly.
  • Сочетание с другими атрибутами: HttpOnly не защищает от CSRF-атак, поэтому его необходимо использовать вместе с:
    • Secure — передача куки только по HTTPS.
    • SameSite — контроль отправки кук при межсайтовых запросах.
  • Инструменты проверки: Просмотр заголовков в DevTools (вкладка Network/Application) или использование сканеров безопасности.