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

#javascript #react-native #firebase-security

#javascript #react-native #firebase-realtime-database #firebase-безопасность

Вопрос:

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

 {
  "rules": {
    ".read": "auth.uid != null",
    ".write": false
  }
} 

Комментарии:

1. Вы отметили свой вопрос google-cloud-firestore , но правила безопасности в вашем вопросе относятся к базе данных реального времени. Обе базы данных являются частью Firebase, но они полностью разделены и имеют свои собственные правила доступа, которые не влияют друг на друга. Если электронные письма предназначены для Firestore, пожалуйста, покажите правила, которые у вас там есть. Если электронные письма предназначены для базы данных реального времени, пожалуйста, отредактируйте, чтобы исправить ваши теги.

2. @FrankvanPuffelen Я исправил. У вас есть какой-либо ответ на мой вопрос?

3. Почему вы добавили анонимную аутентификацию? Вас беспокоит только предупреждение безопасности, которое вы получаете?

4. Я добавил анонимную аутентификацию, чтобы иметь возможность определять правило безопасности

5. Опять же, приведенный выше вопрос: вас беспокоит только предупреждение безопасности, которое вы получаете? Вы хотите прекратить получать такие предупреждения безопасности?

Ответ №1:

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

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

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

  • Посетите https://console .firebase.google.com/subscriptions/project/your-project-id
  • Затем вы получите следующую страницу — введите описание изображения здесь
  • Здесь, в разделе базы данных в реальном времени, вам нужно просто снять галочки с двух полей, которые соответствуют вашей базе данных в реальном времени с небезопасными правилами. Первое поле, которое находится ниже в столбце Firebase, остановит оповещения консоли Firebase, а второе поле, которое находится ниже столбца Email, перестанет получать оповещения по электронной почте.

Вы можете просмотреть этот документ, чтобы узнать об оповещениях Firebase.

Ответ №2:

Вы должны использовать аутентификацию firebase.Тогда приведенный ниже код будет работать для вас.

 {
  "rules": {
    ".read": "auth.uid != null",
    ".write": false
  }
}
 

В противном случае вы можете использовать https://firebase.google.com/docs/remote-config

Комментарии:

1. Как я уже сказал, я использовал анонимную аутентификацию firebase и отредактировал способ написания правил. Но предупреждение все равно приходит. Я хочу решить эту проблему, используя database вместо использования remote config.

2. анонимная аутентификация firebase будет работать или нет, я не уверен.

Ответ №3:

Я думаю, что виновником являются двойные кавычки

 {
  "rules": {
    ".read": auth.uid != null,
    ".write": false
  }
}