Я создал простой лендинг с помощью Angular и предлагаю посетителям, которые могут быть заинтересованы в сервисе, отправить свои данные через стандартную форму регистрации. Данные хранятся в базе данных firebase.
Каков был бы рекомендуемый подход для лучшей защиты моей базы данных, зная, что:
- мой URL-адрес firebase общедоступен (в настоящее время хранится в 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 больше не будет общедоступным.
Что вы думаете? Большое спасибо