【问题标题】:Firebase - browser js vs node jsFirebase - 浏览器 js 与节点 js
【发布时间】:2021-06-30 17:41:36
【问题描述】:

我是一名 Android 开发人员,并且已经使用过 firebase,但是当我想在 web 应用程序上使用它时,我很困惑,我想使用 node.js,因为我知道 firebase 支持的主要语言用于 Web 开发的是 Javascript。

我很困惑,因为我看到 node.js 不支持 firebase 上的某些功能(如 firebase 存储),但他们所谓的“web”支持,我认为混淆来自以下事实我不是网络开发人员,但我无法使用 firebase 区分浏览器 js 和 node.js。

如果我使用浏览器 js,是否可以泄露我的 firebase 配置?还是我应该使用 node.js 并将配置留在服务器端?

您可能会发现我对如何使用 Firebase 构建 Web 应用程序有些迷茫。我很想对这一切有一些建议。

【问题讨论】:

    标签: javascript node.js firebase web


    【解决方案1】:

    JavaScript 是 Web 开发的通用语言,它可以在很多地方运行。

    对于使用 Firebase 的网络项目,大部分 JavaScript 代码在浏览器中运行,并使用 Firebase JavaScript/Web SDK。

    第二个最常见的运行 JavaScript 代码的地方是在受信任的环境中,例如您的开发机器、您控制的服务器或 Cloud Functions,使用适用于 Node.js 的 Firebase Admin SDK。

    第一类代码运行在用户的浏览器中,而第二类代码运行在你可以信任的环境中。

    对于在用户浏览器中运行的代码,您永远不想相信他们运行的代码就是您编写的代码。但这同样适用于您当前的 Android 应用:恶意用户可以从您的 APK 文件中获取 Firebase 的配置数据,然后将相同的配置与他们编写的代码一起使用。

    这就是为什么要保护对您存储在 Firebase 中的数据的访问,您将使用它的 [服务器端安全规则],而不是信任代码。这些规则是您的应用程序业务逻辑的一部分,就像您的代码一样。一旦您编写了良好的规则,它就会保护您项目中的数据,无论是什么代码试图访问它。这也是为什么将配置数据保存在 Web 项目的客户端 JavaScript 或 Android 应用程序中不会带来安全风险的原因。

    另见:

    【讨论】:

      猜你喜欢
      • 2016-09-21
      • 2011-09-04
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      相关资源
      最近更新 更多