Firebase 存储安全规则不适用于文件夹

Posted

技术标签:

【中文标题】Firebase 存储安全规则不适用于文件夹【英文标题】:Firebase storage security rules not working for folder 【发布时间】:2021-01-06 05:39:36 【问题描述】:

我的 Firebase 存储中有以下规则。但是,当我拥有以“https://firebasestorage.googleapis.com/”开头的链接时,即使我未获得授权/身份验证,我仍然可以访问这些图像。我有一个名为 toyCarImages 的文件夹,我想允许公众写入并只允许授权帐户读取

rules_version = '2';
service firebase.storage 
  match /b/bucket/o 
    match /allPaths=** 
      // allow read, write: if request.auth == null;
      allow read: if request.auth != null;
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    
  

我该如何解决这个问题?我在我的应用程序中使用getDownloadUrl() 方法。使用getDownloadUrl() 时有多安全?

提前致谢

【问题讨论】:

【参考方案1】:

下载 URL 为拥有该 URL 的任何人提供对该文件的公共只读访问权限。通过下载 URL 访问文件不受存储桶规则的保护。

如果您想阻止某个下载 URL,您唯一的选择是从 Firebase 控制台撤消该 URL。

【讨论】:

有什么方法可以在 上显示图像而不使用下载 URL? 嗯,你可以通过SDK下载数据,并从中生成base64图像。 google.com/search?q=generate+base64+data+url+from+image+data

以上是关于Firebase 存储安全规则不适用于文件夹的主要内容,如果未能解决你的问题,请参考以下文章

为啥 firebase_firestore 安全规则不适用于文档读取

Firebase 存储安全规则

Firebase 存储安全规则,允许公共或所有者私有文件访问

Firebase 存储上传适用于模拟器,但不适用于 iPhone

Firebase 存储安全规则和上传文件的下载令牌

为特定用户提供访问权限的 Firebase 存储安全规则