Как атрибут 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