【发布时间】:2020-05-04 01:26:57
【问题描述】:
我为 Firebase 存储设置了规则,只允许经过身份验证的用户与之交互。
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /something/{allPaths=**} {
allow read, write: if request.auth.uid != null;
}
}
}
但是,当我在 Firebase 控制台中浏览保存在存储中的资产的详细信息时,我确实会为其中的每一个找到一个公开打开这些资产的链接(当我打开文件的详细信息时),例如:
https://firebasestorage.googleapis.com/v0/b/${my-project}.appspot.com/o/${my-file}?alt=media&token=49385ae5-4df6-44ef-a313-8d1f07b59111
我的猜测是这个链接是downloadURL,公共访问是通过token 授予的。
因此我知道存储内容实际上并不是完全私有的,因为即使我设置了严格的规则,即使我个人和我的应用程序不生成下载 URL,Firebase 仍然会为每个文件自动生成这样的 URL,因此,即使如果令牌很难找到,则无论如何都可以公开在线访问内容。
我的理解正确吗?
或者我在 Firebase 控制台中找到的链接不是下载 url,而是一个临时链接,分别是控制台提供的令牌作为过期寿命?
或者是否可以将 Firebase 存储桶设置为不生成任何下载链接?
【问题讨论】:
标签: firebase firebase-authentication google-cloud-storage firebase-storage firebase-security