Ответ
HTTP-only cookie — это cookie, к которому нельзя получить доступ через JavaScript с помощью document.cookie
. Он передается только по протоколу HTTP(S) между клиентом и сервером.
Основное назначение — защита от XSS-атак (Cross-Site Scripting). Если злоумышленник внедрит вредоносный скрипт на страницу, он не сможет украсть cookie с сессионным токеном, так как браузер заблокирует доступ к нему из JavaScript.
Пример установки (Node.js + Express)
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// Устанавливаем cookie с флагом httpOnly
res.cookie('session_token', 'secret_value', {
httpOnly: true, // Ключевой флаг
secure: true, // Рекомендуется использовать вместе с HTTPS
sameSite: 'Strict' // Дополнительная защита от CSRF
});
res.send('Cookie has been set!');
});
app.listen(3000);
Ключевые моменты:
- Принцип работы: Флаг
HttpOnly
в заголовкеSet-Cookie
указывает браузеру ограничить доступ к cookie. - Безопасность: Значительно снижает риск кражи сессии через XSS.
- Использование: Является стандартом для хранения конфиденциальных данных, таких как идентификаторы сессий или токены аутентификации.