Firebase 存储 REST url https:// URL 的访问控制
Firebase storage REST url access control of the https:// URLs
我已经研究这个问题好几个小时了,我担心我已经知道答案了,但我希望那里的天才们可能知道一些我还没有发现的东西。 (手指交叉)
设置
我正在使用 Ionic 1 和 Firebase 构建聊天应用程序。这意味着我可以通过 REST API 与 Firebase 进行交互。这是一种私人聊天体验,因此所有交流的数据都应保持安全。
我允许用户上传图片,我决定利用 Firebase 的新存储功能。数字文件更适合那里。
我可以使用存储 API 成功上传图像并检索它们...耶(感谢 Firebase)
问题
鉴于我在 REST 世界工作,我通过 URL (通过在文件 ref 上使用 getDownloadURL) 访问图像。生成的 URL 是 public (但不可猜测)。这个 URL 的 public 性质是我目前的垮台:(
我知道 URL 被设计成不可猜测的,如果所有其他方法都失败了,我可以进入控制台撤销 URL,我希望有一些方法可以使用某些东西来保护用户内容不仅仅是混淆。
询问或希望
- 有没有办法创建时间敏感的 URLs(可能使用安全规则)
- 有没有一种方法可以创建条件 URLs,使其在一个 "download"
后过期
- 有没有办法将内容下载为类似于数据库快照的 base64
- 有什么我没有想到的可以解决这个问题
当前想法
- 硬着头皮相信 URL 们会很安全
- 将图像作为 base64 字符串存储在数据库本身中(我真的想避免这种情况,因为它通常不受欢迎)
提前感谢您的建议和指导
这里是 Firebase Storage JS 开发者。
既然你提到使用 "getDownloadURL on the file ref",我假设你正在使用 Firebase Storage JS 库。
- Is there a way to create time sensitive URLs (maybe using security rules)
- Is there a way to create conditional URLs such that it expires after one "download"
很遗憾,我们现在不提供这些功能。
Is there a way to download the content as base64 similar to db snapshots
目前,您只能通过 unguessable 下载 URLs 下载内容。
Is there something I am not thinking of that can solve this problem
看来您对我们图书馆目前提供的内容非常了解。我认为目前最好的选择是使用不可猜测的下载 URLs。唯一能够下载该文件 URL 的用户与最初可以下载实际文件的用户相同。
话虽如此:我同意你的看法,如果你能更灵活地处理文件下载的授权(只允许通过 SDK 访问经过身份验证的用户,more/programmatic控制不可猜测的 URLs、一次性下载 URLs 等)。在寻找改进产品的方法时,我们一定会考虑这一点,感谢您的反馈。
我已经研究这个问题好几个小时了,我担心我已经知道答案了,但我希望那里的天才们可能知道一些我还没有发现的东西。 (手指交叉)
设置
我正在使用 Ionic 1 和 Firebase 构建聊天应用程序。这意味着我可以通过 REST API 与 Firebase 进行交互。这是一种私人聊天体验,因此所有交流的数据都应保持安全。
我允许用户上传图片,我决定利用 Firebase 的新存储功能。数字文件更适合那里。
我可以使用存储 API 成功上传图像并检索它们...耶(感谢 Firebase)
问题
鉴于我在 REST 世界工作,我通过 URL (通过在文件 ref 上使用 getDownloadURL) 访问图像。生成的 URL 是 public (但不可猜测)。这个 URL 的 public 性质是我目前的垮台:(
我知道 URL 被设计成不可猜测的,如果所有其他方法都失败了,我可以进入控制台撤销 URL,我希望有一些方法可以使用某些东西来保护用户内容不仅仅是混淆。
询问或希望
- 有没有办法创建时间敏感的 URLs(可能使用安全规则)
- 有没有一种方法可以创建条件 URLs,使其在一个 "download" 后过期
- 有没有办法将内容下载为类似于数据库快照的 base64
- 有什么我没有想到的可以解决这个问题
当前想法
- 硬着头皮相信 URL 们会很安全
- 将图像作为 base64 字符串存储在数据库本身中(我真的想避免这种情况,因为它通常不受欢迎)
提前感谢您的建议和指导
这里是 Firebase Storage JS 开发者。
既然你提到使用 "getDownloadURL on the file ref",我假设你正在使用 Firebase Storage JS 库。
- Is there a way to create time sensitive URLs (maybe using security rules)
- Is there a way to create conditional URLs such that it expires after one "download"
很遗憾,我们现在不提供这些功能。
Is there a way to download the content as base64 similar to db snapshots
目前,您只能通过 unguessable 下载 URLs 下载内容。
Is there something I am not thinking of that can solve this problem
看来您对我们图书馆目前提供的内容非常了解。我认为目前最好的选择是使用不可猜测的下载 URLs。唯一能够下载该文件 URL 的用户与最初可以下载实际文件的用户相同。
话虽如此:我同意你的看法,如果你能更灵活地处理文件下载的授权(只允许通过 SDK 访问经过身份验证的用户,more/programmatic控制不可猜测的 URLs、一次性下载 URLs 等)。在寻找改进产品的方法时,我们一定会考虑这一点,感谢您的反馈。