Какие существует методы защиты Cookies?

HttpOnly флаг: Запрещает JavaScript доступ кookie, снижая риск XSS-атак.

Короткий ответ

Что ответить на собеседовании

HttpOnly флаг: Запрещает JavaScript доступ кookie, снижая риск XSS-атак. Secure флаг: Передает cookie только по защищенному HTTPS-соединению. SameSite атрибут: Контролирует отправку cookie с межсайтовыми запросами, защищая от CSRF-атак. Значения:

Подробный разбор

Ответ с пояснениями

  • HttpOnly флаг: Запрещает JavaScript доступ кookie, снижая риск XSS-атак.

  • Secure флаг: Передает cookie только по защищенному HTTPS-соединению.

  • SameSite атрибут: Контролирует отправку cookie с межсайтовыми запросами, защищая от CSRF-атак. Значения:

    • Strict: Cookie отправляются только для запросов на тот же сайт с того же домена.
    • Lax: Cookie отправляются для межсайтовых запросов, когда пользователь переходит по внешней ссылке (например, GET-запрос).
    • None: Cookie отправляются со всеми межсайтовыми запросами (требует установки флага Secure).
  • Ограничение срока жизни: Использование атрибута Expires или Max-Age для автоматического удаления cookie.

  • Шифрование: Шифрование чувствительных данных, хранящихся в cookie.

  • Сокращение данных: Хранение в cookie только необходимой информации, такой как идентификатор сессии. Сами данные сессии лучше хранить на сервере.

  • Защита от подбора: Использование криптографически стойких идентификаторов сессий вместо легко предсказуемых.

  • Валидация на сервере: Всегда проверять и валидировать данные из cookie на сервере.

// Пример установки cookie с защитными флагами в Express.js
app.get('/', (req, res) => {
  res.cookie('session_id', 'some_session_token', {
    httpOnly: true, // Запретить доступ через JavaScript
    secure: true,   // Передавать только по HTTPS
    sameSite: 'Lax', // Ограничить отправку при межсайтовых запросах
    maxAge: 3600000 // Срок жизни 1 час (в миллисекундах)
  });
  res.send('Cookie установлено!');
});

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее