2016-06-01 4 views
9

Я планирую перейти на Firebase как свою локальную и онлайн-базу данных для своего Android-приложения. В соответствии с документами, Firebase сначала хранит изменения в локальной базе данных, а затем помещает их в онлайн-БД, когда сеть доступна.Насколько безопасна локальная база данных Firebase в Android?

В моем приложении я бы разместил некоторые важные данные о пользователе в базе данных. Итак, вот мои вопросы:

  1. Насколько безопасна локальная база данных Firebase?

  2. Насколько сложно для благонамеренного хакера с правильными инструментами взломать его?

  3. Это простой файл JSON, такой как онлайн-база данных, доступ к которой может открыть любой пользователь с правами доступа root?

Спасибо.

+2

Поскольку документы firebase не заявляют ничего другого, я бы предположил, что локальные файлы являются файлами базы данных простого текста. Любой, у кого есть root-доступ, может прочитать его и извлечь все данные. BTW: Если данные настолько чувствительны, вы уверены, что хотите сохранить их в открытом тексте на серверах Firebase? – Robert

+1

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

ответ

2

В общем смысле База данных реального времени Firebase может использоваться в автономном режиме. Однако ожидается, что приложение должно быть подключено большую часть времени, и изменения в базе данных, которые происходят во время автономной работы, будут синхронизированы при наличии возможности подключения. 100% автономное использование на самом деле не поддерживается, потому что каноническое хранилище данных находится на сервере.

Локальная копия базы данных ограничена (10 МБ, по крайней мере, на Android). Если вы намерены писать в базу данных за пределами этого ограничения в автономном режиме, она вытеснит часть ваших кэшированных данных, чтобы освободить место для того, что вы добавляете. Затем вы больше не сможете читать эти выселенные значения до тех пор, пока приложение не вернется в сеть. Хуже того, управление растущим списком записей для применения при обратном подключении к сети в Интернете, поэтому вы не хотите планировать много записей в автономном режиме.

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

Из-за этих оговорок лучше не думать о базе данных Firebase Realtime как о «автономной» базе данных. Лучше подумать об этом как о «синхронизированной» базе данных, которая активно синхронизируется с сервером при наличии возможности подключения.

Смежные вопросы