Подтвердить что ты не робот

Следует ли использовать AccountManager для хранения имен пользователей и паролей для Android-приложения?

Я хотел бы знать, следует ли реализовать AccountManager для сохранения учетных данных пользователя, таких как имя пользователя, адрес электронной почты, пароли и т.д. Я не могу найти повод для его использования.

Я не хочу, чтобы другие приложения имели доступ к Accounts, и я действительно не хочу, чтобы они отображались в настройках "Учетные записи и синхронизация" (хотя, возможно, это не большая проблема).

Итак, мой вопрос: следует ли использовать его? За и против? Могу ли я скрыть Accounts из других приложений и не показывать их в "Учетные записи и синхронизация"?

4b9b3361

Ответ 1

Этот принятый ответ на этот вопрос, вероятно, поможет вам... Для чего нужно использовать AccountManager для Android?

Следует также отметить, как упоминалось выше, а также в AccountManager без SyncAdapter?, что вы не можете иметь AccountManager без a SyncAdapter, поэтому его, вероятно, не очень удобно использовать для конкретной ситуации.

Я не вижу никакой причины использовать AccountManager специально для хранения этого типа информации - в конце дня, не говоря уже о том, чтобы вручную хранить данные самостоятельно в вашей собственной базе данных или файле. Во всяком случае, это, вероятно, усложняет ситуацию - почему бы вам просто не сохранить ее в SharedPreferences?

Единственная причина, по которой я мог бы подумать, будет способствовать использованию AccountManager, если вы хотите разделить свою учетную запись с несколькими различными приложениями, поскольку данные хранятся в центральном хранилище данных Android, к которому можно получить доступ Все приложения. Однако, если это не требуется, я думаю, что, возможно, проще и проще просто использовать SharedPreferences

Ответ 2

Обзор

Использование AccountManager для хранения учетных данных является гораздо безопасным способом, чем хранение в файле или SQL DB. Файл может быть восстановлен любым другим приложением, в отличие от AccountManager Android, который обеспечит доступ только к вашему приложению.

Но даже AccountManager не полностью защищен в случае потерянного телефона, например см. это для дополнительной информации.

Хорошая практика (ы)

  • Я бы рекомендовал использовать AccountManager и not сохранить пароль в ясном, но хеш.
  • И для лучшего уровня безопасности еще лучше хранить выделенный токен устройства, поставляемый веб-сервисом и связанный с учетной записью (на стороне веб-службы), и разрешить пользователю отменять токен.

Не хорошо

  • не хранить ясный или даже хэшированный пароль в виде файла или в базе данных, доступной для всех.
  • Никогда не храните ясный пароль, но всегда работайте с хешем.

См. также