最近我收到了一系列Firebase通知,涉及:
[Firebase]您的Cloud FiRecovery数据库有不安全的规则
我们检测到您的安全规则存在以下问题:任何用户都可以写入您的整个数据库。因为您的项目没有强大的安全规则,任何人都可以访问您的整个数据库。攻击者可以窃取、修改或删除您的数据,并会抬高您的账单`
Edit2:我需要的是允许每个人都写,而不需要登录,但是只有管理员帐户应该能够从Firebase控制台读取它。
实时数据库规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
云火力恢复规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow write;
}
}
}
编辑:JSON中的一个数据库结构,其他看起来类似:
{
"battles" : {
"-KjiAFLI8oE_12345678" : {
"full" : true,
"player1" : {
"movement" : {
"down" : false,
"left" : false,
"right" : false,
"up" : false
},
"position" : {
"x" : 0,
"y" : 0
}
},
"player2" : {
"movement" : {
"down" : false,
"left" : false,
"right" : false,
"up" : false
},
"position" : {
"x" : 0,
"y" : 0
}
}
},
"-KjiAMVvJydR12345678" : {
"full" : true,
"player1" : {
"movement" : {
"down" : false,
"left" : false,
"right" : false,
"up" : false
},
"position" : {
"x" : 0,
"y" : 0
}
},
"player2" : {
"movement" : {
"down" : false,
"left" : false,
"right" : false,
"up" : false
},
"position" : {
"x" : 0,
"y" : 0
}
}
}
}
}
Edit3:与Firebaser回复Firebase电子邮件时说我的实时数据库有不安全的规则相反,我不想/使用Firebase身份验证/SSO。
鉴于这些情况,我是否必须/应该以某种方式修改它们?
我收到了这些电子邮件,但是没有什么可以解决我的问题,因为这就是我的系统的工作方式。
就你而言,原因是:
allow write;
在你的云端Firestore规则。这意味着任何人都可以从任何地方访问数据库。
因此,
攻击者可以窃取、修改或删除您的数据,并会抬高您的账单。
将此规则更改为仅允许经过身份验证的访问,警报应停止。卢卡S。
我可以想到两种解决方案,而不会危及安全(在某种程度上):
match /databases/{database}/documents {
match /{document=**} {
allow write: if request.auth != null;
}
}
}
例如:
match /Users-xQnFiECweq {
match /Courses-QrmGvMgF9C {
match /{multiSegment=**}{
allow write;
}
}
}
文档或集合名称末尾的字符串值有点像只有你知道的密码,这使得其他人很难猜测你数据库的确切结构。
我理解这是一种有点奇怪的方法,但它比只给每个人提供写权限要好。
我使用下面的firebase rest API访问firestore数据库数据 为了访问我的firestore数据库,我在关键部分使用了我的访问令牌,但我收到了来自firebase的电子邮件,称“[firebase]您的云firestore数据库有不安全的规则”。直到那时,我才发现任何人都可以访问我的数据库数据,即使没有有效的访问令牌 谢谢
我最近收到一封来自Firebase的电子邮件,告诉我我的数据库(FiRest)的规则不安全,所以我将它们更改为以下内容: 在我有这些规则之前: 在做出改变后,电子邮件不断地回来,我不知道还能做什么。我已经尝试了以下链接中给出的几个选项,但它们都不能满足我的需要。 https://firebase.google.com/docs/rules/insecure-rules#firestore 我需要授
我在中收到一条消息,告诉我我的项目有不安全的规则。但当我检查它时,我不太明白什么是不安全的。 它显示如下: 我保留了读取访问权限,因为它支持一个网站。所以任何访问该网站的人都应该能够读取数据。 至于写权限,据我所知,我是唯一能写的人。 请注意,我还有第三个系列(CollectionThree),规则中没有提到。这可能是原因吗? 除此之外,我还可以想象,只有web服务器可以获得读取权限,以便将内容提
在Firestore中,我有一个拥有所有者的项目集合。 所有者可以是用户,应该允许用户读取其文档。 使用可以执行以下操作: 但是对于引用字段,在涉及安全规则时似乎没有任何文档。 我尝试了以下安全规则: 并如下所示进行查询: 但我仍然缺少或权限不足。
我创建了一个应用程序,它使用Firebase实时数据库。我对安全规则有一个很大的问题。我的用户不需要登录使用应用程序,他们可以发送数据到数据库,无需任何身份验证。例如:这是一个简单的游戏,他们可以互相玩,然后他们可以保存分数。我想创建一个安全的数据库,但是任何人都可以写
null 基本上数据结构如下所示: 问题是,我应该写什么安全规则来允许用户只在他们所属的组中(拥有组密钥)读取、创建和更新数据?同时,如何禁止用户找出其他群组的密钥?