问题标签 [firebase-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7076 浏览

php - Firebase PHP CURL 身份验证

我目前正在使用 Firebase 和 PHP 建立一个小型聊天室。我认为这对 Firebase 来说是一个很好的学习项目,到目前为止我对它非常满意!

然而,我已经碰壁了。我不确定如何通过 PHP 为 Firebase 实施身份验证系统。我需要身份验证系统执行的操作非常具体:

为了能够使用聊天,用户必须使用我的自定义 php 登录系统登录。然后,一旦他们登录,他们还将进行身份验证,以便能够在聊天中读/写。

我无法真正理解使用 CURL 的 PHP 是如何实现的(如果有的话)。

在我的__construct函数中有以下内容:

我将如何通过 Firebase 进行身份验证以让用户能够在我的聊天中读/写,并且不允许未经身份验证的用户读/写?注意:我没有对 Firebase 安全规则做任何事情——这是我的问题的一部分。

我查看了文档,我可能只是很厚,但我真的找不到我要找的东西。

希望有人指出我正确的方向。

谢谢!

编辑:我故意不使用 javascript 进行聊天,除了对我的 php 脚本的 ajax 调用,然后在我完成我想要对用户的消息执行的操作后将其中继到 Firebase。

编辑 2:添加到所用库的链接:“ Firebase 令牌生成器”和“ Firebase PHP Client

编辑 3:我当前的代码如下所示:(参考

__构造:

新消息功能:

但是它返回:{ "error" : "invalid_token: Could not parse auth token." }。我基本上想获得管理员权限。我尝试仅使用 Firebase 机密作为身份验证,但它返回相同的错误。

规则:

0 投票
0 回答
1219 浏览

javascript - How to create groups in Firebase and then create new users into that group? How do I restrict access to only that group?

I cant wrap my head around How To create a /location/groupID/users/userName with Firebase. Also, how do I restrict each group to only the users inside of that group?

0 投票
0 回答
216 浏览

firebase - 我确信 ref.auth 被窃听了

几个星期前我试过了,但它不起作用,我刚才又试了一次,它仍然不起作用。我只在身份验证完成后分配事件处理程序。在我的代码中,延迟机制是使用 $scope.$watch 执行的。

安全规则:

服务:

控制器:

铬控制台:

在这一点上,我很清楚你这边有一个错误,尽管登录成功,但我还是允许我进行简单的阅读。

不,AngularFire 对我来说毫无用处,因为它不进行身份验证,而且漏洞百出。

0 投票
1 回答
1035 浏览

firebase - Firebase 简单登录不返回用户对象

我正在尝试通过电子邮件/密码提供商使用 FIrebase 的简单登录。我的设置非常简单,它是 Firebase 文档的副本:

用户创建正确,我在我的控制台:

但是当我点击登录按钮时,我得到:

响应由一个“token”字符串和一个带有正确 id、email、provider 等的“user”json 字符串组成。

响应似乎是正确的,不知何故用户对象没有被填充。

我尝试使用错误的电子邮件或密码,并收到相关的错误消息。

我错过了什么吗?

我还注意到对身份验证服务的调用是这样的:

我不是安全专家,但网址上的明文密码不是主要的安全问题吗?

感谢您的任何意见。

安德烈亚斯

0 投票
2 回答
2516 浏览

php - 使用 php 时,firebase 给了我权限被拒绝

我正在尝试使用 REST 使用 php 写入 firebase,但我一直被拒绝权限

我正在使用这样的测试文件:

我设置了规则,只有特定的授权用户“我”管理员可以写入火力库,但任何人都可以从中读取。当代码在 Javascript 中时这很好,因为我会登录并获得授权。但现在它在 php 中,我认为“秘密”可以完成这项工作,或者至少我被 firebase DOCS 引导相信这一点。

那么我做错了什么?

谢谢!

更新:

所以我改变了:

成为

我把它放在这里:

现在我得到这个错误:

0 投票
1 回答
860 浏览

rest - 一种在 Firebase 中强制执行唯一属性的方法

在我的 Firebase 中,我有许多数据项,在这种情况下,它们是公告。每个公告都有一个“ID”的子属性,对于每个公告来说都是唯一的。当我通过休息向数据库发布公告时,有没有一种方法可以强制 ID 是唯一的?也就是说,如果我尝试添加两次具有相同 ID 的公告,第二次就会失败。我怀疑我可以用规则做一些事情,但我不确定。

谢谢, 德克兰

0 投票
1 回答
314 浏览

firebase - 只有当前连接(未经过身份验证)和管理员用户在特定位置读取和写入的可能性

是否有任何方法可以编写安全规则,或者是否有任何其他方法可以仅让当前连接的(未经过身份验证的)用户写入/读取某个位置 - 管理员也应该能够写入/读取?是否可以编写一条规则,禁止用户读取完整的条目列表,并让他们只读与从客户端传递的某个标识符匹配的条目?

我正在尝试通过 Firebase 在用户和 Node.js 应用程序之间交换一些数据,并且这些数据不应该被用户和/或管理员以外的任何人读取或写入。

我知道一种解决方案是用户在我的服务器上请求身份验证令牌并使用它在 Firebase 上进行身份验证,这样就可以编写防止读写的规则。但是,我试图避免用户连接到我的服务器,所以这个解决方案不是首选。

这是一种基于会话的场景,在 Firebase 中不可用,但我有一些可以解决此类问题的想法 - 如果在会话管理之前实施:

  • 也许让管理员写入 /.info/ 位置,客户端每次更改都会观察到该位置,并且只能通过活动连接读取 - 如果我正确理解 .info 的工作原理
  • 也许为此目的创建 .temp 位置
  • 也许让管理员和连接的客户端可以更多地访问连接信息,其中包含一些连接唯一 ID,可用于创建具有该名称的位置并在规则中使用它来防止读取和列出给其他用户

谢谢

0 投票
3 回答
6963 浏览

firebase - Firebase 事务 api 调用当前数据为空

当我transaction()用来更新位置时,即使该位置有一些数据,该位置的数据也会返回 null 。

transaction() 我在同一位置读取数据后尝试在该位置提供所有数据。

transaction()如果是上述情况,我该如何使用?

0 投票
1 回答
192 浏览

firebase - 内部 auth() 似乎遵守外部 auth() 规则

在我们的应用程序中,我们使用 Firebase 的自定义登录功能将一些元数据存储在用户的身份验证令牌中。

稍后,我们将此令牌发送到我们的一个 Web 应用程序,以使用新的管理令牌禁用安全规则来代表用户执行任务。这个想法是,经过身份验证的用户不能直接写入特定位置,但在完成一些服务器端计算和验证后,可以将数据写入该位置。

这是我正在尝试做的示例代码:

但我得到这个错误:

当期望的行为是能够使用管理员令牌在该位置写入时。

我知道这可能不是 Firebase 问题,而是一些 JavaScript 好/坏部分,但我需要做的是代表用户在某个受保护的位置写入,即使该用户无权在该位置写入,但是需要进行身份验证。

0 投票
2 回答
1889 浏览

firebase - Firebase 安全规则,最多限制字符串的某些字符

如何限制用户保存超过某个限制的字符串?

我得到无效的属性访问:如果尝试使用字符串的长度属性在安全规则中进行验证,则目标不是对象。