К списку
HTTP, REST и APIJuniorСкрининг с HR

Как атрибут HttpOnly повышает безопасность cookie в веб-приложениях

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

Атрибут HttpOnly ограничивает доступ к cookie со стороны JavaScript, что предотвращает кражу данных через XSS-атаки. Он применяется на уровне HTTP-заголовков для повышения защиты сессионных данных.

Развёрнуто

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

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


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

Когда сервер устанавливает cookie с флагом HttpOnly, браузер сохраняет эту cookie, но не позволяет получить к ней доступ через объект document.cookie или другие методы JavaScript. Это предотвращает сценарии, когда вредоносный скрипт может прочитать или изменить cookie, используемые для аутентификации или других целей.

Без HttpOnly С HttpOnly
Доступ через JS есть Доступ через JS запрещён
Уязвимость к XSS Защита от XSS

Атрибут задаётся в HTTP-заголовке Set-Cookie следующим образом:

Set-Cookie: sessionId=abc123; HttpOnly

Это означает, что cookie sessionId доступна только серверу и браузеру при HTTP-запросах, но не скриптам.

Пример

Set-Cookie: userToken=xyz789; Path=/; Secure; HttpOnly

В этом примере cookie userToken доступна только при HTTPS-запросах (Secure) и скрыта от JavaScript (HttpOnly).

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

  • HttpOnly предотвращает доступ к cookie через JavaScript, снижая риск XSS-атак.
  • Этот атрибут не защищает cookie от других типов атак, например, CSRF.
  • Для полной безопасности cookie часто комбинируют с атрибутом Secure.
  • Отсутствие HttpOnly может привести к компрометации сессионных данных.

Тема: HTTP, REST и API | Уровень: junior