javascript - 无需身份验证的 Firebase 数据库安全性 (Web)

标签 javascript html firebase firebase-realtime-database

我在 Android 环境中使用 Firebase 已有 2 或 3 个月了。

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

现在我正在网络环境(HTML 和 Javascript)中启动一个新项目。

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

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

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

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

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

最佳答案

Firebase 数据库访问主要围绕了解用户并根据该信息授权其使用。如果您不要求网络用户登录,则允许他们访问非常容易。

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

  1. 允许所有人进入
  2. 禁止任何人进入

如果您不想要求用户登录,但仍希望根据了解哪个用户执行了每个操作来确保访问安全,则可以使用 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 进行操作。

关于javascript - 无需身份验证的 Firebase 数据库安全性 (Web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892752/

相关文章:

html - css 不同高度 div 网格空间

javascript - 如何在每个X声音上播放音频?在JavaScript中

html - 从 formbuilder 中获取一个 id 以删除 Angular 6 中的一行

node.js - 在 node.js 服务器上验证客户端 Firebase token

java - 如何使用 Java 将数据保存到 Firebase(桌面)

javascript - 如何创建临时写入流?

javascript - Vanilla JS 迭代 div insideHTML 以便以设定的时间间隔显示和隐藏

javascript - 使用 javascript 将 URI 中的反斜杠更改为正斜杠

javascript - 如何以编程方式将 jQuery 插件 'intl-tel-input' 重置为默认占位符

angular - 如何将 Angular 下拉列表的选定值绑定(bind)到标量值的 Observable?