Firebase数据库安全性,无需进行身份验证(Web)

L. *_*emi 0 html javascript firebase firebase-realtime-database

我已经在Android环境中使用Firebase 2到​​3个月了.

我的所有安全性都是用户注册和登录以及基于身份验证的一些数据库规则.

现在我在Web环境(HTML和Javascript)中开始一个新项目.

它应该是一个连接到firebase以执行一些写入和读取操作的Web应用程序.

我不希望用户进行身份验证,因为没有必要.

令我害怕的是浏览器开发者控制台可以看到所有HTML和JavaScript.在我的Html中,有一个Firebase配置,需要将我的项目与数据库和所有其他功能连接起来.

让每个人都看到配置是安全的吗?

在这种情况下实施安全性的正确方法是什么?

Fra*_*len 6

Firebase数据库访问围绕了解用户并基于该知识授权其使用.如果您不要求您的网络用户登录,则很容易允许他们访问.

但是,您如何控制恶意用户覆盖其他人的数据或者锁定其他人的数据库访问?在不知道恶意用户的身份的情况下,您唯一的选择是:

  1. 允许每个人进来
  2. 允许没有人参加

如果您不希望要求用户登录,但仍希望根据知道哪个用户执行了每项操作来保护访问权限,则可以使用Firebase的匿名身份验证.来自文档的代码段:

firebase.auth().signInAnonymously().catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});
Run Code Online (Sandbox Code Playgroud)

这是一个无UI API调用,可为您的用户生成唯一ID.因此,用户没有负担,但您可以在安全规则中仍然对这些用户的UID采取行动.