首页 > 解决方案 > 将图像 URL 从 Firebase 存储存储到数据库是否安全?

问题描述

我是编程和firebase的新手。我正在使用 firebase 构建一个 iOS 应用程序。实际上我想缓存来自 firebase 存储的图像。我正在使用 Kingfisher pod 来帮助我下载和缓存图像,因为.... Firebase 存储似乎没有提供缓存图像方法

使用 kingfisher 下载和缓存的代码如下:

let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)

它需要一个 URL,这就是为什么在用户成功上传到 firebase 存储后,我设法存储存储在 firebase 存储中的图像的 URL。

Firebase 存储中上传图片的 URL 如下所示

https://firebasestorage.googleapis.com/v0/b/xxxxx.appspot.com/o/profilePicture%2Fefb36-df90-4fa5-ad42-bd452cdff?alt=media&token=313407-79c7-4c49-851a-4ae8452bdc

它有令牌......

假设它是用户个人资料图片的图像,所以我会在从 firebase 存储中获取后将其存储在设备本地。

这种方法安全吗?

如果我检查,firebase 存储中的每个图像的令牌都是不同的,所以我认为它会没问题

标签: iosfirebasefirebase-realtime-databasegoogle-cloud-firestorefirebase-storage

解决方案


Firebase 为 Cloud Storage 生成的下载 URL 为知道该 URL 的任何人提供文件的公开读取权限。但正如您所见,令牌是独一无二的,并且被认为是不可猜测的。一般来说,这意味着某人知道 URL(从而能够读取文件)的唯一方法是与他们共享 URL。

很难就某物是否安全给出一个笼统的答案。这取决于您希望它的安全性,以及您如何存储它。

例如:如果您将其存储在授予每个人完全读取和查询访问权限的数据库中,那么您实际上是授予每个人对所有文件的只读访问权限。如果这正是你想要的,那就太好了。如果这不是您想要的,您将需要定制您的数据库安全规则以满足您的需求。


推荐阅读