仅存储 Firebase 存储下载 URL 令牌(而不是完整路径)是否安全?

Mel*_*ion 5 firebase firebase-storage angular

我有一个 Angular 应用程序,使用 Firebase Storage 来存储用户上传的照片文件。用户上传文件后,我调用 getDownloadURL() (返回 Observable)来获取完整的公共 URL 路径。我想将 URL 字符串存储在 Firestore 数据库中,以便可以将其绑定到 img html 元素 src 属性以在网页上显示。这将使我不必调用存储 API 来逐一异步获取每个图像 URL。

该 URL 在查询字符串中包含一个令牌值,我认为该令牌值是不可猜测的,并作为一种密码用于安全性。为了节省空间,我应该只将令牌存储在数据库中吗?我可以使用变量组装云文件夹路径的其余部分 - 令牌是唯一的部分。正如您所看到的,完整的 URL 路径相当长。您认为 URL 路径的其余部分会改变吗?

Firebase 存储下载 URL 示例(不是真实的)

https: -- //firebasestorage.googleapis.com/ -- v0/b/my-bucket-name-goes-here/o/T4uk5DnzXlO1C7hs9HrSdb7yxsM2%2Fthumb%2FcX2kCobDqdRgN3snefYh.jpg?alt=media&token=238b33ad-f823-4876-a5e2- 626ca157ed10

Dou*_*son 2

您从 API 获得的唯一保证是整个 URL 将获取存储中的文件。你应该不透明地对待它,而不是试图分解或解释它的组成部分。

  • 我的意思是,将来生成的 URL 的下载 URL 的格式可能会发生变化,那么尝试解释它们的代码可能会中断。但一旦你有了一个 URL,它就应该可以永远安全地使用。 (3认同)