标签: firebase-security

使用Firebase UID作为QR代码标签是否安全?

如果我使用Firebase用户UID作为QR代码标签,这是一种明智的方法吗?

如果公众知道UID会有什么后果?

这会让黑客有机会修改用户隐私数据吗?

firebase firebase-security firebase-authentication

13
推荐指数
1
解决办法
1212
查看次数

Firebase云存储规则可以针对Firestore数据进行验证吗?

我们是否可以使用Firestore数据授予或限制对Firebase Cloud Storage上托管的文件的访问权限?

我希望用作Firebase安全规则的例子

allow write: if get(/databases/mydbname/documents/guilds/$(guildID)).data.users[(request.auth.uid)] in ["Admin", "Member"];
Run Code Online (Sandbox Code Playgroud)

firebase firebase-security firebase-storage google-cloud-firestore

13
推荐指数
2
解决办法
1943
查看次数

使用Firebase的多对多

可以说我有两种对象用户和帐户.用户可以拥有多个帐户并与其他用户共享.因此Account1可能对User1和User2可用.虽然AccountB仅适用于User1.所以User1有两个帐户,User2有一个帐户.

什么是"firebase"构建方式?

我最初认为用户可以分别存储他们所属的帐户数组.

users: {
  1: {
    name: 'Ted',
    accounts: [1, 2]
  }
  2: {
    name: 'Frank',
    accounts: [1]
  }
}

accounts: {
  1: {
    name: "Checking"
  },
  2: {
    name: "Savings"
  }
}
Run Code Online (Sandbox Code Playgroud)

或者帐户将有一组用户.

users: {
  1: {
    name: 'Ted'
  }
  2: {
    name: 'Frank'
  }
}

accounts: {
  1: {
    name: "Checking",
    users: [1, 2]
  },
  2: {
    name: "Savings"
    users: [1]
  }
}
Run Code Online (Sandbox Code Playgroud)

我想知道哪种方式让我能够轻松找到用户的帐户,这样当Ted登录时我可以列出他所属的帐户而无需拉下整个数据库.为了安全起见,我不希望他的机器上的所有数据.

问题#1安全规则会解决这个问题吗?我的意思是我打算设置我的安全规则,以便用户只能拥有他们所属的帐户.我希望,如果我查询"/ accounts",我将只返回用户可以访问的那些帐户...不是吗?

问题#2是否有查询项目列表的机制.像"/ accounts/[1,2]",以便我收回帐户"/ accounts/1"和"/ accounts/2"?

感谢您分享的任何信息.

firebase firebase-security

12
推荐指数
1
解决办法
5084
查看次数

我的数据如何通过firebase保护?

我一直在关注Firebase的演示,我对在线存储数据的功能和灵活性感到惊讶.还在其主页上查看了AngularJS Projects教程,其中Firebase作为后端.

但是,在开始在我的Web应用程序中使用它之前,我几乎没有问题:

  1. 我的所有数据到底存储在哪里?
  2. 如果我的数据由于硬件故障或任何其他问题而在未来丢失怎么办?
  3. 为了黑客的应用数据的安全性,依赖Firebase是否安全?
  4. 如果Firebase将来要求付款以存储或检索我的应用数据,该怎么办?
  5. Firebase是否适合存储大型数据集,例如每个用户100 MB(不仅仅是聊天数据)?

有人可以帮我澄清这些问题吗?

database security firebase firebase-security

12
推荐指数
1
解决办法
1万
查看次数

Firebase如何保护用户操纵数字数据,例如.比赛得分

我正在使用Firebase开发多人游戏.每场比赛后,玩家得分记录在火力基础中,并且玩家总得分字段也会使用新总数进行更新.我的问题:是否有可能使用firebase安全规则来保护playerTotalScore字段免受用户的任意操纵?如果是这样,怎么样?

我已详细阅读了firebase网站上的firebase安全信息.虽然我理解可以在安全规则中实现一些复杂的逻辑(按照给定的数量增加一个数字,例如这个要点,或者只使用字段插入(".write": "!data.exists()"),但在这种情况下,没有任何信息似乎有帮助. - 仅仅规则是不够的,因为分数可以通过多次递增来操纵.仅插入似乎是totalScore的一个选项,因为它在每次游戏后更新.

更新

根据加藤的要求,这是具体的用例.

我正在开发的游戏是一个问答游戏,其中玩家回答问题,并且玩家得分实时显示.

在游戏过程中,通过以下声明在每个问题之后更新该特定游戏的得分:

gameRef.child('players').child(UserId).child('score').set(gameScore)
Run Code Online (Sandbox Code Playgroud)

游戏结束后,totalScore=totalScore+gameScore玩家的总分数(所有游戏玩法)计算为,然后使用以下语句在Firebase中更新玩家总分:

leaderboardRef.child(userId).setWithPriority({userName:userName, totalScore:totalScore}, totalScore)
Run Code Online (Sandbox Code Playgroud)

Update2:Kato请求的数据结构

这是我目前具体的具体结构.这不是一成不变的,所以我愿意根据建议的方法来保护数据,无论如何需要更改它.

用户(玩家)所玩的每个游戏的得分存储在以下结构中

<firebase_root>/app/games/<gameId>/players/<userId>/score/
Run Code Online (Sandbox Code Playgroud)

<gameId>是firebase生成的密钥,作为调用firebase push()方法的结果. <UserId>是firebase simplelogin uid.

每个用户(玩家)的总分数(所有游戏的所有分数的总和)存储在以下数据结构中

<firebase_root>/app/leaderboard/<userId>/totalScore/
Run Code Online (Sandbox Code Playgroud)

出于查询目的,总分数的排行榜数据使用totalScore作为优先级进行设置

leaderboardRef.child(userId).setWithPriority({userName:userName, totalScore:totalScore}, totalScore)
Run Code Online (Sandbox Code Playgroud)

得分和总分数都是数字整数值.这就是我能想到的当前数据结构的所有细节.

firebase firebase-security firebase-realtime-database

12
推荐指数
1
解决办法
2835
查看次数

Firebase - 如何在身份验证后为每个用户写入/读取数据

我试图理解但是无法看到登录后我存储的数据的方式和位置.

public static final String BASE_URL = "https://xyz.firebaseio.com";

Firebase ref = new Firebase(FirebaseUtils.BASE_URL);
    ref.authWithPassword("xyz@foo.com", "some_password", new Firebase.AuthResultHandler() {

    @Override
    public void onAuthenticated(AuthData authData) {
        Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
        startActivity(new Intent(LoginActivity.this, MainActivity.class));
    }
    @Override
    public void onAuthenticationError(FirebaseError firebaseError) {
    }
}
Run Code Online (Sandbox Code Playgroud)

此时,我已成功通过身份验证并登陆MainActivity.接下来onCreateMainActivity.我初始化了Firebase

firebase = new Firebase(FirebaseUtils.BASE_URL).child("box");

// adapter below is an ArrayAdapter feeding ListView
firebase.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        if (dataSnapshot.getValue(Box.class) instanceof Box)
            adapter.add(dataSnapshot.getValue(Box.class).getName());
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-security

12
推荐指数
1
解决办法
2万
查看次数

如何调试Firebase安全规则/权限

在Firebase 2中,用户可以创建自定义令牌并指定调试标志,这反过来会返回大量有关权限的调试信息.在Firebase 3中,它似乎已被删除.

有没有办法,也许通过REST API获取此权限调试数据回到web(javascript)?尝试通过模拟器有时调试超过1k行的权限文件是不可行的.

firebase firebase-security firebase-realtime-database

12
推荐指数
1
解决办法
1500
查看次数

GCP:如何向 Firestore 集合上的服务帐户授予角色?

我们可以与服务帐户共享 BigQuery 数据集,我们可以通过为服务帐户分配特定角色来将服务帐户作为成员添加到特定存储桶......使用图形界面。

火力商店怎么样?我们可以与服务帐户共享特定的集合吗?我在网络界面中找不到任何这样的选项..

备注:我无权向服务帐户授予全局权限,但我有权向资源添加成员并授予他们对该特定资源的角色。

谢谢你!

service-accounts firebase-security google-iam google-cloud-firestore

12
推荐指数
1
解决办法
1万
查看次数

如何使用Firebase安全地共享特定组中的状态数据?

在我的应用程序中,我有许多不同的用户组,例如聊天室和特定项目.

如何允许这些组中的用户共享其状态数据,并查看该组中每个其他用户的存在,但是将该数据保持为外部世界的私密性?

firebase firebase-security

11
推荐指数
1
解决办法
2049
查看次数

Firebase规则自行重置

我在文档中找不到答案.默认的Firebase规则是:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
   }
}
Run Code Online (Sandbox Code Playgroud)

我编辑了我看起来像这样并保存了它们:

{
  "rules": {
    "users":{
      ".read": true,
        ".write": "auth != null"
    },
    ".read": "auth != null",
    ".write": "auth != null"
  }
}
Run Code Online (Sandbox Code Playgroud)

如果没有我做任何事情,他们会在看似12小时后随机重置旧规则.我在这里错过了一些坚持选择吗?

firebase firebase-security firebase-realtime-database

11
推荐指数
1
解决办法
1333
查看次数