Ответ
Атрибут Secure — это флаг, устанавливаемый для HTTP-куки, который указывает браузеру, что данную куку можно передавать на сервер только через зашифрованное HTTPS-соединение.
Назначение: Защита конфиденциальных данных, хранящихся в куках (например, идентификаторов сессии, токенов аутентификации), от перехвата при передаче по незащищённому HTTP-каналу (атака "человек посередине" - MITM).
Пример установки (Node.js/Express):
res.cookie('sessionId', 'abc123xyz', {
secure: true, // Кука передаётся только по HTTPS
httpOnly: true, // Защита от доступа через JavaScript (XSS)
sameSite: 'Strict' // Защита от CSRF-атак
});
Важные особенности:
- Локальная разработка: На
localhostбез HTTPS куки с флагомSecureне будут отправляться. Для тестирования флаг часто временно отключают. - Комбинация с другими флагами: Для максимальной безопасности
Secureобычно используется вместе с:HttpOnly— предотвращает доступ к куке через JavaScript.SameSite— контролирует отправку кук с межсайтовыми запросами.
- Обязательность: Использование
Secureявляется стандартом безопасности (например, требуется спецификацией OWASP) для всех кук, содержащих чувствительную информацию.