当前位置: 首页 > 知识库问答 >
问题:

带有Firebase安全规则、自定义域和CloudFlare的静态托管谷歌云存储

萧伟兆
2023-03-14
    null

用Firestore存储创建的bucket与我的域同名,并且bucket权限已设置为“allusers”,角色为“Storage Legacy Object Reader”。我可以访问两个文件:index.html和secret.html而无需任何形式的身份验证(由于我设置了bucket权限)。

如何使index.html的内容对所有用户公开,但secret.html仅限于Firebase存储安全规则(例如,仅限于Firebase身份验证的用户)?

在我当前的设置中,这可能吗?是所有文件都是公共的还是什么都不是公共的?

共有1个答案

单于楚
2023-03-14
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /index.html {
      allow read: if true;
    }
    match /secret.html {
        allow read: if request.auth != null;
    }
  }
}

请注意,由于您的bucket是公共的,由于存储遗留对象读取器权限,如果用户以某种方式拥有完整的bucket URL,他将能够直接访问您的资产,例如使用下一个URL:

 类似资料:
  • null 基本上数据结构如下所示: 问题是,我应该写什么安全规则来允许用户只在他们所属的组中(拥有组密钥)读取、创建和更新数据?同时,如何禁止用户找出其他群组的密钥?

  • 拒绝许可。无法访问存储桶..请访问Firebase控制台中的Storage选项卡,为您的存储桶启用Firebase存储,并确保您有足够的权限来正确提供资源 在谷歌搜索如何设置这些安全规则,我不确定什么是正确的答案。一些答案建议我在代码中编写方法来授予权限,但文档建议我需要在Firebase的端进行。 这是其中一个例子 我无法理解人们的回答 就像几个月前的这张 有人能解释一下当前的Firebase(

  • 作为旁注,我假设添加到CustomMetadata的键数没有限制?

  • 简单介绍一下,我正在尝试了解Firebase安全协议,我已经建立了一个名为UsersDB的数据库,该数据库将根据身份验证存储详细信息。uid。详细信息包括全名、电子邮件、提供商、帐户创建日期、上次登录日期。 我设置了如下规则: 我的理解是,记录只能由user_id符合auth.uid.的人读写 我的问题是我做得对吗?如果不对,我应该如何实现这一目标?我只希望创建帐户的人能够读写这个,而没有其他ui

  • 这样的消息在开发环境中很好,但是在生产环境中,我们不能在浏览器中向用户显示这一点。所以我想知道谷歌云存储中是否有定制这些消息和页面的规定。 提前感谢, 约杰什