К списку
Безопасность и авторизацияJuniorСкрининг с HR

Для чего используется флаг HttpOnly в cookies и как он защищает

Краткий ответ

Флаг HttpOnly ограничивает доступ к cookie только через HTTP(S)-запросы, блокируя доступ из JavaScript. Это помогает предотвратить кражу cookie при атаках XSS.

Развёрнуто

Краткий ответ

Флаг HttpOnly в cookie запрещает доступ к ним через клиентский скрипт, например JavaScript. Это значительно снижает риск кражи сессионных данных при атаках типа XSS.


Как это работает

Когда cookie устанавливается с атрибутом HttpOnly, браузер не позволяет получать или изменять это cookie через document.cookie или другие клиентские скрипты. Доступ к такому cookie возможен только при отправке HTTP-запросов на сервер, что ограничивает возможности злоумышленников использовать уязвимости типа Cross-Site Scripting (XSS) для кражи сессионных данных.

Атрибут cookie Доступ через JavaScript Защита от XSS
HttpOnly Нет Да
Без HttpOnly Да Нет

Таким образом, HttpOnly — это дополнительный уровень защиты, который повышает безопасность данных пользователя.

Пример

Set-Cookie: sessionId=abc123; HttpOnly; Secure; Path=/

В ответе сервера cookie sessionId устанавливается с флагом HttpOnly. Это значит, что даже если на странице есть вредоносный JavaScript-код, он не сможет получить значение sessionId через document.cookie.

Что важно знать на собеседовании

  • HttpOnly предотвращает доступ к cookie из клиентских скриптов.
  • Это эффективно снижает риск кражи сессионных данных при XSS-атаках.
  • Атрибут HttpOnly не защищает от CSRF-атак — для них нужны другие механизмы.
  • HttpOnly применяется совместно с другими флагами, например Secure, для повышения безопасности.

Тема: Безопасность и авторизация | Уровень: junior