У меня есть база данных firebase только с 3 основными узлами. Это приложение для чата, и ниже приведена структура
chat_messages
- chatID
-messageID
-message (string)
-read (bool)
-senderName (string)
-senderProfilePic (string)
-sent_by (string)(uid)
-timestamp (string)
chat_room
-chatID
-chat_mode (string)
-last_message (string)
-timestamp (string)
-members
-uid (string)
-email (string)
-name (string)
-photo (string)
-uid (string)
-userID (int)
-userRole (string)
user_chatrooms
-uid
-chatID( string) : timestamp (string)
Я установил базовую безопасность, разрешив read
и write
на true
, и я получил электронное письмо от firebase, в котором говорится, что в моей базе данных есть insecure rules
Затем я перенастроил правила базы данных следующим образом.
{
"rules": {
"chat_messages":
{
".read": "auth != null",
".write": "auth != null",
},
"chat_room":
{
".read": "auth != null",
".write": "auth != null",
},
"user_chatrooms":
{
".read": "auth != null",
".write": "auth != null",
}
}
}
Это обеспечивает дополнительную защиту, блокируя доступ к чему-либо еще за пределами упомянутых узлов.
теперь, как я могу предотвратить удаление этих узлов?
Чтобы предотвратить удаление узла, вы можете проверить, предоставляются ли новые данные в операциях записи:
".write": "auth !== null && newData.exist()"
Если все, о чем вы заботитесь, это остановить электронные письма, вы можете отключить их, щелкнув значок колокольчика в правом верхнем углу консоли Firebase, а затем в настройках в правом верхнем углу (рядом с «Оповещениями»). Но я считаю, что лучше прислушиваться к этим предупреждениям, поскольку они обычно означают, что ваша база данных открыта для злоупотреблений, за которые вы несете ответственность.
Нет, я тоже заинтересован в защите данных, возможно, я неправильно задал свой вопрос, я хотел проверить, соответствует ли моя база данных минимальным стандартам «защищенной базы данных» firebase. Итак, я правильно понимаю ваш код?
Вы спросили «как я могу предотвратить удаление этих узлов?», и я ответил здесь. Применили ли вы это изменение к своим правилам и позволило ли это предотвратить удаление?
Привет, @PeakGen Есть новости по этому поводу? У вас была возможность проверить, предотвращает ли это правило удаление узлов, как вы просили?
Очень сожалеем о задержке и спасибо, что заглянули. Да, это сработало. Спасибо 😊
Спасибо. Я проверю. Когда мы это сделаем, перестану ли я получать письма с "незащищенной базой данных"? Кроме того, не могли бы вы объяснить, что происходит в вашем коде? Для меня это выглядит так, как будто вы проверяете, вошел ли пользователь в систему и предоставляет ли пользователь какие-либо данные во время вызова, в основном проверяя, не являются ли данные в предоставленном вызове нулевым