Ответ
Атрибут HttpOnly — это флаг безопасности для HTTP-кук, который запрещает доступ к куке из клиентского JavaScript (через document.cookie).
Основная цель: Защита от кражи сессионных идентификаторов и токенов аутентификации при успешных XSS-атаках (межсайтовом скриптинге).
Пример установки HttpOnly куки в HTTP-ответе:
Set-Cookie: sessionId=abc123xyz; HttpOnly; Secure; SameSite=Strict
Сравнение доступа:
- Без
HttpOnly: Внедрённый вредоносный скрипт может украсть куку.// Злоумышленник может выполнить этот код при XSS const stolenCookie = document.cookie; // Возвращает все доступные куки - С
HttpOnly: JavaScript не может прочитать или изменить эту куку, что сводит на нет многие XSS-атаки, направленные на кражу сессии.
Важно: HttpOnly не защищает от CSRF-атак. Для комплексной защиты его следует использовать вместе с атрибутами Secure (передача только по HTTPS) и SameSite (ограничение межсайтовых запросов).