Спроектируйте безопасную аутентификацию
Вопрос
Вы проектируете аутентификацию для нового B2C-продукта: веб и мобильное приложение. Какие решения вы примете?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Хранение паролей: Argon2id или bcrypt, проверка по утечкам, длина вместо сложности
MFA и passkeys, восстановление доступа без слабых мест
Сессии: серверные или короткий access и refresh с ротацией, флаги cookie
Защита входа: лимиты, обнаружение аномалий, одинаковые ответы
Мобильное приложение: OAuth Code + PKCE или свой flow с безопасным хранилищем
Логи событий аутентификации и уведомления пользователю
Что могут спросить следом
- Как устроите восстановление доступа, если пользователь потерял устройство с passkey?
- Где будете хранить токены в мобильном приложении?
Разбор
Образцовый ответ: «Пароли храню в Argon2id, требую длину от 12 символов без правил сложности, проверяю по базе утечек. С первого дня поддерживаю passkeys и TOTP как второй фактор. Восстановление продумываю особо: резервные коды, подтверждение по почте с задержкой и уведомлением, без секретных вопросов. Веб: серверная сессия в cookie __Host- с HttpOnly, Secure, SameSite=Lax, перевыпуск id при входе, тайм-ауты, список активных сессий. Мобильное приложение: короткий access и ротируемый refresh-токен в Keychain или Keystore, обнаружение повторного использования refresh. На вход лимиты и оценка риска, одинаковые ответы. Все события входа, сброса и смены факторов в аудит-лог, пользователю письмо о новом устройстве».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.