Как обезопасить базу данных без аутентификации? - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю игру Unity, в которой я хочу получить список 50 лучших глобальных очков с именами пользователей.Я использую базу данных Firebase в реальном времени.Пользователю не нужно проходить аутентификацию.Я не очень знаком с безопасностью баз данных и довольно новичок в этой концепции.Я использую Rest Api из Unity Asset store, потому что отправлять и получать данные из базы данных было довольно легко.

Как я могу быть уверен, что все оценки, отправленные в базу данных, получены из моего приложения?

Ответы [ 4 ]

0 голосов
/ 08 февраля 2019
  1. Добавление выделенного пользователя с паролем в вашу базу данных

  2. Где-то в вашем приложении добавьте эти учетные данные, например, в ScriptableObject / в некоторый компонент

  3. Всегда используйте эти учетные данные для аутентификации

Обратите внимание, что ваше приложение все еще можно декомпилировать и тем самым обмануть.

Вы можете по крайней мере сделать этосложнее с помощью шифрования данных и т. д.

Единственный способ на самом деле - это иметь учетную запись и сервер сеансов, чтобы гарантировать, что пользователь заблокирован с действительным сеансом.

0 голосов
/ 08 февраля 2019

Если вы не используете Firebase Authentication, вы не можете ограничить доступ к вашей базе данных.Любой сможет отправить запрос, и он может даже сделать это, используя REST API базы данных реального времени .Все, что им нужно знать, - это название вашего проекта.

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

0 голосов
/ 08 февраля 2019

По моему опыту, вы не можете помешать преданным «пользователям» обманывать глобальные рекорды.Я сделал несколько простых игр для Windows Phone с глобальным рейтингом 50. Даже если ваша игра непопулярна, вы запутываете свой код, используете непопулярную платформу и шифруете сетевой трафик: кто-то собирается взломать ихпозвоните по телефону, декомпилируйте свое приложение и добавьте свой собственный высокий балл в вашу игру, прежде чем высокие результаты будут отправлены в глобальный список.Единственный способ борьбы с этим состоял в том, чтобы следить за игровыми сессиями на сервере, чтобы убедиться, что их результаты теоретически возможны в зависимости от того, как долго они играли.

0 голосов
/ 08 февраля 2019

Отказ от ответственности: я ничего не знаю о Firebase

Из того, что я могу сказать, вам нужно настроить доступ к Default и Public разделам вашей конфигурации, чтобы сообщить базе данных, кто можети не может получить доступ к вашей базе данных.Вот их документация по Начало работы с правилами базы данных .

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

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