Для чего используется флаг 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