Firebase 存储安全规则:指定“允许读取:如果 request.auth != null”后,我仍然可以使用提供的下载链接访问我的文件
Posted
技术标签:
【中文标题】Firebase 存储安全规则:指定“允许读取:如果 request.auth != null”后,我仍然可以使用提供的下载链接访问我的文件【英文标题】:Firebase Storage security rules: After specifying "allow read: if request.auth != null" I can still access my files using the download link provided 【发布时间】:2018-09-07 11:28:18 【问题描述】:我的 Firebase 存储规则是
service firebase.storage
match /allPaths=**
allow read: if request.auth != null;
我已从 google 注销并使用 chrome 浏览器(隐身模式),然后输入从 firebase.storage 获得的 url(下载 url 链接)。我仍然可以下载文件。如果用户已通过 firebase.authentication 身份验证,如何确保文件仅允许下载?
我的文件位于根 firebase.storage 位置。
我也试过了
service firebase.storage
match /b/bucket/o
match /allPaths=**
allow read: if request.auth != null;
firebase.storage 中有一个 revoke download url url 但它似乎根本没有做任何事情。
【问题讨论】:
【参考方案1】:下载网址可供公众访问,用于将文件共享给 Firebase 之外的应用程序。 Firebase 安全规则不会通过下载 URL 控制对存储对象的访问。您可以使用 Firebase 控制台撤消下载 URL。
另请参阅此answer from a Firebase team member 相关问题。他指出:
使用下载 URL 是在外部共享文件的适当方式 应用程序,或不需要登录的用户。
【讨论】:
有一个撤销下载 URL 链接,但是当我按下它时,我仍然可以通过 url 访问文件...该 url 变灰一两秒钟,然后又变黑。 好的,所以撤销只是发出另一个 url 并使用旧 url 撤销访问。所以,只要我不给出文件的 url,我就可以(有点……你知道,管理员可以共享下载 url,然后文件是公开的,嗯)以上是关于Firebase 存储安全规则:指定“允许读取:如果 request.auth != null”后,我仍然可以使用提供的下载链接访问我的文件的主要内容,如果未能解决你的问题,请参考以下文章