Управление сессиями: безопасные практики

Управление сессиями — базовый компонент безопасности. Компрометация 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.