Ответ
Атрибут SameSite управляет тем, отправляются ли cookie с кросс-сайтовыми (cross-site) запросами. Это важный механизм защиты от атак типа межсайтовой подделки запроса (CSRF) и утечки конфиденциальных данных.
Значения атрибута:
Strict: Cookie отправляются только в контексте того же сайта (точно совпадающий домен). Не отправляются при переходе по ссылке с другого сайта. Максимальная безопасность, но может нарушить UX (например, после входа по ссылке из почты пользователь окажется неавторизованным).Lax(значение по умолчанию в современных браузерах): Cookie отправляются при безопасных методах запроса (GET) и во время навигационных переходов (например, переход по ссылке). Блокирует отправку cookie в кросс-сайтовых POST-запросах, что предотвращает большинство CSRF-атак.None: Cookie отправляются при любых кросс-сайтовых запросах. Обязательно требует установки флагаSecure(передача только по HTTPS). Используется для функциональности, требующей кросс-доменного взаимодействия (например, виджеты, аутентификация в iframe).
Пример установки в Node.js с Express:
// Установка сессионной куки с SameSite=Lax
res.cookie('sessionId', 'abc123', {
httpOnly: true, // Защита от доступа через JavaScript (XSS)
secure: process.env.NODE_ENV === 'production', // Только по HTTPS в продакшене
sameSite: 'lax', // Баланс безопасности и удобства
maxAge: 24 * 60 * 60 * 1000 // Срок жизни 1 день
});