我已经在Android环境中使用Firebase 2到3个月了。
我的所有安全性都是用户注册和登录以及基于身份验证的一些数据库规则。
现在我正在网络环境(HTML和Javascript)中开始一个新项目。
它应该是一个连接到firebase以执行一些写入和读取操作的Web应用程序。
我不希望用户进行身份验证,因为没有必要。
令我害怕的是浏览器开发者控制台可以看到所有HTML和JavaScript。在我的Html中,有一个Firebase配置,用于将我的项目与数据库和所有其他功能连接起来。
让每个人都看到配置是安全的吗?
在这种情况下实施安全性的正确方法是什么?
答案 0 :(得分:6)
Firebase数据库访问围绕了解用户并根据该知识授权其使用。如果您不要求您的网络用户登录,则很容易允许他们访问。
但是,您如何控制恶意用户覆盖其他人的数据或锁定其他人的数据库访问?在不知道恶意用户的身份的情况下,您唯一的选择是:
如果您不想要求您的用户登录,但仍希望根据知道哪个用户执行了每项操作来保护访问权限,则可以使用Firebase's anonymous authentication。来自文档的代码段:
firebase.auth().signInAnonymously().catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
这是一个无UI API调用,可为您的用户生成唯一ID。因此,用户没有负担,但您可以在安全规则中依据这些用户的UID行事。