Я построил простую целевую страницу с помощью Angular и предлагаю посетителям, которые могут быть заинтересованы в услуге для отправки своих данных через стандартную регистрацию форма. Данные хранятся в базе данных firebase.Угловая + Firebase: как лучше всего защитить вашу базу данных на целевой странице (не требуется аутентификация)
Что бы рекомендуемый подход, чтобы лучше защитить мою базу данных, зная, что:
- мой firebase URL является публичным (в настоящее время находится в JavaScript)
- страница является общедоступной (так что каждый может «написать» в базе данных)
до сих пор я добавил следующие правила для моей firebase консоли:
{
rules: {
".read": "auth != null", // nobody can read
visitors: {
".write": "!data.exists()", // nobody can modify existing data
"firstname": {".validate": "newData.isString() && newData.val().length < 40"}, // only string with less than 40 characters
"lastname": {".validate": "newData.isString() && newData.val().length < 40"}, // only string with less than 40 characters
"email": {}, // no rules
"message": {".validate": "newData.isString() && newData.val().length < 500"} // only string with less than 500 characters
}
}
}
Вопрос 1: Правильны ли эти правила для защиты моей базы данных или я должен рассмотреть возможность добавления дополнительных?
Вопрос 2: Должен ли я сокрывать свой URL-адрес Firebase на серверном сервере? Моей идеей было бы поместить URL-адрес firebase в php-файл на сервере; Чтобы обновить базу данных новыми данными о посетителях, приложение сначала сделает вызов ajax на моем сервере через службу $ http, вернет URL-адрес firebase, а затем обновит базу данных firebase. В этом случае URL-адрес firebase больше не будет публичным.
Как вы думаете? Большое спасибо
Фрэнк, спасибо, что разъяснил пару пунктов. Относительно 1) предоставленная ссылка очень полезна, и я буду соответствующим образом обновлять некоторые из правил. –
Что касается 2), я понимаю из вашего комментария, что предложение получить ключ api с сервера не является подходом, который имел бы смысл. Правильно? Кроме того, я не понимаю вашего комментария, если обернуть API базы данных Firebase на моем сервере/поставить свою логику на стороне сервера за базой данных - это путь или проверка правильности формата данных достаточно для целевой страницы. –
Я сказал вам, что большинство разработчиков, с которыми я общаюсь, делают. Никто, кроме вас, не может решить, достаточно ли для вашего приложения достаточно. –