Как разрешить конкретному API запускать запросы на запись / чтение в firestore? - PullRequest
0 голосов
/ 31 января 2019

Сегодня у меня есть следующее правило в моем пожарном хранилище:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

Я не могу выполнять запросы от моего API, так как он не выполняет вход (есть ли способ авторизации только через CLI?).Но я хочу убедиться, что только мой API выполняет эти запросы.

Можно ли добавить определенный заголовок в мой запрос и проверить его по правилам Firebase?

Если это нелучший подход, какой из них будет?

Контекст: - Использование аутентификации только через провайдера Google.

1 Ответ

0 голосов
/ 31 января 2019

только мой API делает эти запросы

Это невозможно с таким размещенным в Cloud API.Поскольку любой клиент должен иметь возможность совершать такие вызовы, вся информация о конфигурации должна присутствовать на клиенте, который вы отправляете своим пользователям.А это значит, что злоумышленник может взять эти данные конфигурации и сделать свои собственные (эквивалентные или очень разные) вызовы.

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

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

Для получения дополнительной информации см .:

...