Что делает атрибут Secure у HTTP-куки (Cookie)?

«Что делает атрибут Secure у HTTP-куки (Cookie)?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Атрибут 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) для всех кук, содержащих чувствительную информацию.