【问题标题】:Is Firebase really Secure?Firebase 真的安全吗?
【发布时间】:2014-06-01 15:21:51
【问题描述】:

我正在考虑将 Firebase 用于一个项目,该项目原本是一个带有 js 的静态站点。是否可以在静态站点中保护与数据库的连接?不是所有的安全规则、端点 url 等都暴露在 js 代码中,让用户提出他们想要的任何请求(好或坏)。

【问题讨论】:

    标签: firebase firebase-security


    【解决方案1】:

    简短的回答是:通过验证您的用户并编写安全规则,您可以完全限制对 Firebase 数据的读/写访问。

    简而言之,Firebase 安全性由服务器端规则强制执行,编写并控制对 Firebase 数据树中给定路径的读取或写入访问。

    Firebase 安全规则是类似于 JavaScript 的表达式:易于编写的表达式,可以访问连接凭据、Firebase 数据树的现有视图以及写入时的待定更改。

    在大多数情况下,您的客户端逻辑、模板、资产等都是静态的和公开的。您真正要保护的是用户和应用程序数据,这就是 Firebase 身份验证(无论是使用自定义 Firebase 身份验证令牌还是 Firebase 简单登录)的用武之地。Firebase 身份验证本质上是令牌生成 - 获取已确认、可识别的用户数据并通过将其安全地传输到 Firebase,以免被欺骗。然后在您的安全规则中提供此确认的凭据数据。

    查看https://stackoverflow.com/a/20842986/879295 以获取示例,查看Firebase Security Quickstart Video 以获得出色的概述/起点。

    【讨论】:

    • 一个细节是服务器端验证通常会发生什么。在某些情况下,您仍然希望验证客户端无法控制的内容并将其保存到数据库中。这不是 Firebase 的安全问题,而是架构问题。仅仅因为您可以直接从客户端写入 Firebase,并不意味着您总是应该这样做。您并没有在每种情况下自动消除对服务器端代码的需求。编写安全的应用程序很难——Firebase 安全性是其中的一部分,但它并不能解决所有问题。就个人而言,我
    • 我在多个站点上读到过,jwt 应该只存储在 http only cookie 上,但 firebase 将它们存储在 localStorage 上。我错过了什么吗?
    猜你喜欢
    • 2012-06-12
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多