Где хранить access и refresh токены в мобильном приложении и на вебе?

На мобильном устройстве секреты хранят в защищённом хранилище платформы; в вебе часто используют серверную сессию с HttpOnly-cookie. Refresh-токен требует особенно строгой защиты.

Короткий ответ

Что ответить на собеседовании

На мобильном устройстве секреты хранят в защищённом хранилище платформы; в вебе часто используют серверную сессию с HttpOnly-cookie. Refresh-токен требует особенно строгой защиты.

Подробный разбор

Ответ с пояснениями

На мобильном устройстве секреты хранят в защищённом хранилище платформы; в вебе часто используют серверную сессию с HttpOnly-cookie. Refresh-токен требует особенно строгой защиты.

В iOS подходит Keychain. На Android токен можно хранить зашифрованным в приватных данных приложения, защищая ключ через Android Keystore: это хранилище ключей, а не произвольных строк. Короткоживущий access-токен по возможности держат в памяти. В браузере LocalStorage доступен JavaScript и уязвим при XSS; HttpOnly-cookie требует защиты от CSRF, настроек Secure и SameSite. Продумайте ротацию refresh-токенов, отзыв сессии и очистку при выходе. Токены не должны попадать в URL и логи.

Источник: developer.apple.com, developer.android.com, cheatsheetseries.owasp.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее