如何撤销Firebase存储下载URL令牌以保障文件高安全性
如何移除Firebase Storage下载URL或撤销其中的访问令牌?
先跟你说清楚:Firebase Storage生成的带token参数的下载URL,本质是靠令牌来授予文件的访问权限。要把文件锁得牢牢的,你可以试试这几个办法:
直接刷新下载令牌,让旧URL彻底失效
这是最直接的操作。打开Firebase控制台,进入Storage模块找到对应的文件,点进去看详情。在页面里找「下载令牌」那块,点「刷新令牌」按钮——原来的token立刻就作废了,所有用旧URL的请求都会被拒,同时会生成新的令牌(要是还需要新的下载URL的话)。改存储安全规则,从根源限制访问
要是不想让任何带token的URL能碰这个文件,就调整Storage的安全规则。比如改成只允许登录了Firebase Auth的用户访问,或者直接拒绝所有没授权的请求。举个规则示例:rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }这样就算有人拿着旧的带token的URL,只要没通过Auth认证,根本访问不了文件。
删除或替换文件(极端情况用)
要是这个文件已经没用了,直接删掉它,所有相关的URL自然就失效了。要是还要保留内容但想彻底换访问路径,把文件重命名或者移到别的存储目录里,原来的URL也会因为路径不存在而用不了。
要注意的是:Firebase没有单独撤销某一个令牌的功能,但刷新令牌会让所有基于旧令牌的URL失效,这基本能满足大部分安全需求了。另外,平时尽量用签名URL(可以设置过期时间)来分享文件,别用永久的带token的下载URL,这样能更好地控制谁能访问、能访问多久。
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

