Я разрабатываю хобби-проект, используя Firebase и некоторые Node.JS, работающие на Google App Engine в качестве бэкэнда. Я настоящий новичок в этой области, а также только месяц назад услышал о Firebase.
Мой вопрос касается того, как различные «вещи» могут быть защищены от действий пользователя, даже если Firebase работает как JS на стороне клиента.
Я знаю, что БД и Хранилище могут быть защищены с помощью логических правил - это на месте.
Мой вопрос скорее касается действий, которые пользователь может выполнять с помощью firebase.auth() и подобных, например:
- firebase.auth().createUserWithEmailAndPassword()
- firebase.auth().currentUser.delete()
- firebase.auth().currentUser.link()
Как я понял из вопроса, указанного ниже, решения нет - пользователь всегда сможет вызывать эти функции, и это считается малорисковым, поскольку они не могут касаться других учетных записей пользователей. "запретить пользователю firebase удалять себя"
Меня беспокоит невозможность заблокировать пользователей от этих действий, потому что я не могу внести соответствующие изменения в БД. Для некоторых основных случаев использования я предполагаю, что легко настроить ночное пакетное задание для очистки, но я боюсь, что в будущем возникнут более сложные проблемы.
Мое текущее решение для выполнения атомарных действий, например. удалить учетную запись пользователя и удалить данные пользователя в БД, это отправить запрос на мой внутренний сервер Node.JS. Это отлично работает, но пользователь может, как я понимаю, обойти это и запросить, например. currentUser.delete() сам. Другой случай — когда пользователь отвязывает аккаунт Google. Я хотел бы, чтобы пользователь вышел из системы, но с предпосылками пользователь может отменить связь с последующим действием.
Вопрос: я что-то неправильно понял? Можно ли это легко предотвратить, или это так, что все доступные действия считаются безвредными, и я должен выполнить умную очистку и т. д.? Если это невозможно предотвратить, есть ли у вас какие-либо более умные предложения, чем ночные пакетные задания?