🌸 Чек-лист: тестирование управления сессиями
Эффективное управление сессиями критически важно для обеспечения безопасности, поскольку сессии идентифицируют пользователей и их действия в системе.
1️⃣ Случайность и стойкость идентификаторов сессии😗 Проверяем, насколько сложно угадать Session ID (например, перебором).
😗 Используем инструмент Burp Intruder или скрипты, чтобы сымитировать подбор ID.
😗 Убеждаемся, что Session ID не основан на шаблоне (время, инкремент и т.п.).
2️⃣ Безопасность передачи Session ID😗 Проверяем, не передаются ли идентификаторы через URL (например,
example.com/dashboard?sid=abc123).
😗 Проверяем, что cookies с сессией:
• используют Secure (передача только по HTTPS),
• имеют флаг HttpOnly (защита от XSS),
• используют SameSite=Strict или Lax (защита от CSRF).
3️⃣ Регистрация и вход в систему
😗 Проверяем, создаётся ли новый Session ID после успешного входа.
😗 Проверяем отсутствие Session Fixation: нельзя «внедрить» старую сессию новому пользователю.
😗 Проверяем, удаляется ли старая сессия при повторном входе с другого устройства (если это необходимо по логике).
4️⃣ Таймауты и завершение сессий😗 Проверяем, что сессия истекает после периода неактивности (например, 15 минут).
😗 Проверяем, что после логина и логаута:
• Session ID меняется,
• доступ по старой сессии невозможен (сервер отбрасывает её).
5️⃣ Логаут (выход из системы)😗 Проверяем, действительно ли уничтожается сессия на сервере.
😗 Проверяем, что попытка повторно использовать cookie или Session ID приводит к 401 или перенаправлению на логин.
6️⃣ Многосессионность и параллельные подключения😗 Проверяем, что пользователь:
• может/не может иметь несколько сессий (по требованиям),
• может завершить все активные сессии (например, через кнопку “выйти на всех устройствах”).
7️⃣ Безопасность cookie😗 Проверяем:
• наличие HttpOnly, Secure, SameSite в каждом сессионном cookie,
• отсутствие конфиденциальных данных в cookie,
• отсутствие домена .example.com, если приложение не требует междоменной передачи.
8️⃣ Session Hijacking😗 Пробуем использовать старые или украденные идентификаторы сессий.
😗 Проверяем, отслеживает ли система:
• изменение IP-адреса,
• смену user-agent или геолокации,
• и реагирует ли на это (например, выбрасывает
⚠️ Проверки важно проводить как в нормальных условиях, так и в случаях ошибок, отмен входа, истечения времени и т.п. — чтобы покрыть все возможные сценарии.
🐸 Библиотека хакера#буст