我为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存储设置了规则,仅允许经过身份验证的用户与其进行交互。 rules_version ='2';服务firebase.storage {匹配/ b / {bucket} / o {匹配/ something / {...
拥有下载网址并带有有效令牌的任何人都可以从任何地方访问内容。但是,如果您从未向任何人公开该URL,那么即使他们知道该路径,任何人也基本上不可能猜测该URL。令牌是随机的,并且包含大量的熵。