我正在开发一个业余项目,使用Firebase和一些运行在Google上的Node.JS作为后端。我在这方面是个真正的新手,一个月前我还听说过Firebase。
我的问题是,尽管Firebase在客户端以JS的形式运行,但如何从用户操作中保护各种“事物”。
我知道可以使用逻辑规则来保护DB和存储--这是已经到位的。
我的问题更多地涉及到用户可以使用firebase.auth()和类似工具执行的操作,例如:
正如我从下面链接的问题中了解到的,没有解决方案--用户将始终能够调用这些函数,而且由于它们不能访问其他用户帐户,因此被认为是低风险的。"prevent firebase user from deleting himself"
我担心无法阻止用户进行这些操作,因为我无法对DB执行相关的更改。对于一些基本的用例,我假设很容易设置一个夜间批处理作业来清理,但我担心将来会出现更复杂的问题。
我目前用于执行原子操作的解决方案,例如删除数据库中的用户帐户和删除用户数据,是向我的后端Node.JS服务器发送请求。这很好,但据我所知,用户可以通过传递它并请求(例如,currentUser.delete() )。另一种情况是,用户断开了google帐户的链接。我希望用户被注销,但有了前提,用户可以取消与后续行动的链接。
问题:我有误解什么吗?这能很容易地被预防吗?还是说所有可用的操作都被认为是无害的,这取决于我是否可以执行聪明的清理等等?如果它不能被阻止,你还有比夜间批量工作更聪明的建议吗?
发布于 2017-05-03 16:57:59
例如,对于用于firebase的云函数,您可以在用户删除时触发一个函数。这样,每次删除用户时,您都可以运行代码来进行清理。不管如何调用用户删除。
exports.removeUserFromDatabase = functions.auth.user().onDelete(function(event) {
// Get the uid of the deleted user.
var uid = event.data.uid;
// Remove the user from your Realtime Database's /users node.
return admin.database().ref("/users/" + uid).remove();
});"onCreate“也是如此。查看他们的文档https://firebase.google.com/docs/auth/extend-with-functions
https://stackoverflow.com/questions/43733204
复制相似问题