Ответ
HttpOnly — это флаг (атрибут), который можно установить для HTTP-куки. Его основная цель — защита от краж сессионных идентификаторов через XSS-атаки (межсайтовый скриптинг).
Принцип работы:
- Кука с атрибутом
HttpOnlyпередается браузером на сервер и обратно только в заголовках HTTP-запросов. - Доступ к такой куке из JavaScript (через
document.cookie) полностью блокируется. Даже если злоумышленник сможет внедрить вредоносный скрипт на страницу, он не сможет прочитать защищенную куку.
Пример заголовка Set-Cookie:
Set-Cookie: sessionid=abc123xyz; HttpOnly; Secure; SameSite=Strict
Важные моменты для тестирования безопасности:
- Проверка: Убедиться, что критичные для аутентификации куки (например,
sessionId,token) установлены с флагомHttpOnly. - Сочетание с другими атрибутами:
HttpOnlyне защищает от CSRF-атак, поэтому его необходимо использовать вместе с:Secure— передача куки только по HTTPS.SameSite— контроль отправки кук при межсайтовых запросах.
- Инструменты проверки: Просмотр заголовков в DevTools (вкладка Network/Application) или использование сканеров безопасности.