Как правильно использовать firebase в js, не раскрывая базу данных пользователям? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать firebase с хостингом firebase (node js backend), чтобы позволить вошедшим в систему пользователям загружать файл.

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

Я успешно сделал это, используя firebase в js (на стороне клиента) ,

Однако, с помощью firebase на стороне клиента, любой может написать любой код javascript, чтобы сделать что-нибудь с firebase db, storage, и даже они могут напрямую создавать новых пользователей, что очень плохо.

Правило безопасности моей БД:

".read": "auth != null",
".write": "auth != null"

Я не смог найти никакого полезного контента по этому поводу. Даже в официальном примере кода Google (для js) реализован аналогичным образом.

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

1 Ответ

0 голосов
/ 23 марта 2020

У вас есть два варианта.

  1. Правильно реализовать правила безопасности для мобильных и веб-клиентов, имеющих прямой доступ к вашей базе данных и хранилищу. Существуют правила безопасности, доступные для базы данных реального времени, хранилища пожаров и облачного хранилища.

  2. Переместить все в бэкэнд, где ваш клиент должен передавать токен Firebase Auth ID при каждом запросе, проверять его используя Firebase Admin SDK, и выполняйте эту операцию, только если этому пользователю разрешено, по любому логу c, который вы выберете.

Вам решать, какой вариант лучше для вас конкретный c вариант использования.

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