Почему можно разрешить запись в Firebase со стороны клиента? - PullRequest
0 голосов
/ 22 июня 2019

Я знаю, что при запросах из Firebase вам следует быть особенно внимательными, чтобы убедиться, что вы читаете данные, которые хотите, но разве внешние записи не подвержены злому умыслу?Например, злоумышленник может заполнить свое поле возраста строкой (или, возможно, диктом) вместо числа.Допустим, я выполняю гигантский запрос на сервере, чтобы вычислить средний возраст пользователей на моем сайте.Я делаю get для каждого возраста и забываю форсировать любые строки целыми числами.Выполнение этого вычисления со строкой приводит к сбою моего приложения.

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

Не будет ли безопаснее вызывать мой бэкэнд API изкод на стороне клиента?Этот API-интерфейс будет проверять все ожидаемые данные и не полон случайных словарей или недопустимых типов данных.

1 Ответ

1 голос
/ 22 июня 2019

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

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

Чтобы узнать больше об этом, см.

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