Лучшие практики для хранения модели данных Firestore - PullRequest
1 голос
/ 14 июня 2019

При использовании Firestore и Android, если мы хотим сохранить модель данных в одном месте, мы можем сохранить ее:

В XML:

<string name="collection_users">users</string>
<string name="user_first_name">first</string>
<string name="user_last_name">last</string>
<string name="user_year_birth">born</string>

Или непосредственно в Java:

public static final String COLLECTION_USERS = "users";
public static final String FIELD_FIRST_NAME = "first";
public static final String FIELD_LAST_NAME = "last";
public static final String FIELD_YEAR_BIRTH = "born";

Однако в обоих случаях мы раскрываем всю модель данных БД в клиентском коде, упрощая работу злоумышленников в случае, если они каким-то образом получают в свои руки исходный код приложения.Есть ли полезная практика или предлагаемый подход для минимизации воздействия структуры БД в клиентском коде при использовании БД без SQL, такой как Firestore?

1 Ответ

2 голосов
/ 14 июня 2019

Есть ли полезная практика или предлагаемый подход для минимизации уязвимости структуры БД при использовании БД без SQL, такой как Firestore?

Конечно, используйте Firestoreправила безопасности, так что вы можете защитить свою базу данных в соответствии с вашими потребностями.Для этого я рекомендую вам прочитать официальную документацию о начале работы с правилами безопасности Cloud Firestore .

Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате.Для создания систем доступа на основе пользователей и ролей, обеспечивающих безопасность данных ваших пользователей, вам необходимо использовать Аутентификация Firebase с правилами безопасности Cloud Firestore.

С момента раскрытия базы данныхСтруктура не может быть предотвращена, имя коллекций / документов должно явно существовать в вашем коде, чтобы вы могли использовать их в своих ссылках.Но это не будет проблемой, если вы правильно защитите свою базу данных.Вы можете переместить некоторую логику (когда это возможно) на стороне сервера, это будет хорошим вариантом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...