Управление сессиями: безопасные практики
Управление сессиями — базовый компонент безопасности. Компрометация session token = полный доступ к аккаунту.
Session tokens
Генерация: CSPRNG, минимум 128 бит энтропии. Формат: opaque string (не JWT для web-сессий). Хранение на сервере: Redis, Memcached, БД. Никогда не encode user_id в token — только random идентификатор с lookup на бэкенде.
Cookie attributes
HttpOnly: недоступен из JS (защита от XSS). Secure: только по HTTPS. SameSite=Lax/Strict: защита от CSRF. Path=/: сужение области. Domain: только нужный поддомен. __Host- prefix: дополнительные ограничения.
Lifecycle
Idle timeout: 30 мин без активности. Absolute timeout: 24 часа. Rotation: новый token после логина, повышения привилегий. Concurrent sessions: разрешать N устройств с уведомлением. Revocation: logout инвалидирует токен на сервере, не только удаляет cookie.
Session hijacking mitigation
Bind session к IP или user-agent (проверка при подозрении). TLS everywhere. HSTS для защиты от MITM. Alert на новый device/location. Fingerprinting как дополнительный сигнал. Automatic re-auth для sensitive actions.