我将应用程序的数据存储在Firebase上,这是我在Firebase上的第一个项目,比我想象的要困难得多.我已经阅读了官方文档,它说我们可以使用他们的电子邮件和密码登录用户或使用其他登录选项,如谷歌或Facebook等.但我不希望用户登录我的应用程序但只读取和写入数据如果他们使用我的应用程序的 firebase .现在我正在为我的firebase使用公共规则,但是那些引用我的firebase URL的人都可以读写数据库.我该如何克服这个问题?
提前致谢.
android firebase firebase-authentication firebase-realtime-database
我已经阅读了Firebase,它看起来很棒我想做什么.我已经阅读了有关身份验证以及如何根据规则确定某些登录用户有权执行不同的操作.好的.
但是,我不确定另一种类型的安全性:我如何确保只有我自己的站点(使用客户端javascript)可以与我的firebase-backend通信?我问,因为afaik没有办法阻止任何人从客户端代码(url指向我的特定firebase后端)查找我的firebase端点并开始使用它,因为上帝知道什么.
在我想要打开匿名用户角色的写入的情况下,这尤其令人担忧.(例如:某些分析可能)
任何有助于清除我的想法的人都非常感激.
我正在开发一款可从Firebase数据库中读取的Android应用.App用户不会登录或修改数据库.所有应用用户都将查看相同的数据; 我正在使用Firebase进行实时更新.
理想情况下,我想限制对数据库的访问,以便只有我的应用程序才能读取数据.
我知道我可以做的一些事情:
1.编写允许任何人阅读的安全规则,即
{
"rules": {
".read": true,
".write": false
}
}
Run Code Online (Sandbox Code Playgroud)
骗局:任何人都可以阅读:(
2.编写允许经过身份验证的用户阅读的安全规则,然后将用户名和密码硬编码到应用程序中
{
"rules": {
"$user_id":{
".read": "auth.uid === $user_id",
".write": false
}
}
}
Run Code Online (Sandbox Code Playgroud)
Con:在应用程序中硬编码用户名和密码似乎非常错误.此外,它实际上并没有锁定数据库,因为任何人都可以反编译应用程序,获取google-services.json和硬编码的用户名/密码,并编写自己的应用程序共享我的包名称.
谷歌搜索已经揭示了这一点,这是写作的具体内容,而这就是"不",但已经有几年了.
限制访问数据库的正确方法是什么?我是从错误的方向接近这个吗?
android firebase firebase-security firebase-realtime-database
有没有办法限制 Cloud Firestore(用于托管/网络)进行 CRUD 操作,但仅限于一个域,比如说xyz.com?
例如,下面的规则在read, update, delete未经授权的情况下锁定,但您仍然可以将write事物锁定到数据库。
service cloud.firestore {
match /databases/{database}/documents {
match /coming-soon-email-ids/{document=**} {
allow write;
allow read, update, delete: if request.auth.uid == !null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
还是我必须在其中集成 Google 的防火墙?
我需要从 firebase 存储访问读/写图像。没有身份验证设施。如何限制仅通过应用程序进行数据管理。
提供公共访问的现有规则是
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
Run Code Online (Sandbox Code Playgroud)