Как я могу установить правила в Firebase, чтобы только мое приложение могло писать в моей базе данных firestore? - PullRequest
0 голосов
/ 18 октября 2019

Firebase сказал мне, что моя база данных не защищена, потому что у меня были правила:

service cloud.firestore {
 match /databases/{database}/documents {
   match /mypath/{document=**} {
    allow write: if true;
    allow read, delete: if false;
   }
  }
 }

У меня нет проблем с чтением и удалением, поскольку только мой сервер, использующий FirebaseAdmin, может выполнять такие операции. Однако у меня все еще есть проблема с операциями записи. Вот почему я переключаюсь на эту конфигурацию:

service cloud.firestore {
  match /databases/{database}/documents {
    match /mypath/{document=**} {
      allow write: if request.resource.data.psw == 'mypassword';
      allow read, delete: if false;
    }
  }
}

Моя идея состоит в том, чтобы написать пароль в файле конфигурации моего приложения и использовать его вместе с данными, которые я хочу сохранить в Firestore. Этот метод безопасен или есть лучший способ?

Заранее спасибо за любой совет.

1 Ответ

1 голос
/ 18 октября 2019

Схема, которую вы используете, совсем не безопасна, поскольку вы отправляете свой «секрет» клиентским приложениям. Любая часть информации, которую вы включаете в свое приложение, является, по сути, общедоступной информацией, поскольку легко разбить данные мобильного или веб-приложения, чтобы увидеть, как именно они работают.

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

Имейте также в виду, что то, что у вас есть, теперь также позволяет любому клиенту обновить любой известный документ, не предоставляяпароль. request.resource.data.psw будет установлен правильно для обновлений, где он был изначально установлен правильно. Это потому, что request.resource.data содержит все содержимое предыдущего документа, а также любые изменения, которые были добавлены в обновлении.

Если по какой-то причине вы не можете использовать Аутентификацию Firebase, то то, что вы делаете сейчас, - лучшее, что вы можете сделатьда, но на самом деле следует знать, что это не очень безопасно.

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