为Firebase存储可下载的URL强制执行身份验证



firebase docs建议在任何存储参考中获得可下载的URL(例如,在HTML <video>标签中用于html CC_1中的流视频)。因此,您可以设置将通过SDK应用客户请求的安全规则。

但是,似乎收到的可下载URL公开可用于任何客户/设备,无需认证。

有什么方法可以为这种用例执行安全授权吗?我注意到您可以在控制台中手动撤销公共URL,但这不是可扩展的解决方案,也不是安全的。

有两种方法可以从firebase存储下载文件:

  • gs://bucket/object
  • https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<UUID>

前者是内部参考,可用于通过我们的SDK上传和下载文件。这些受Firebase身份验证和Firebase存储安全规则保护。它旨在在应用程序中使用您的应用程序的用户使用。

后者是外部引用,只能用于下载已共享的文件,通常是应用程序外部的。由于与之共享的用户不在您的应用程序之外,因此无法进行身份验证,因此授权不那么有趣。

我们提供的授权是"他们有一个长期无法掩盖的令牌",这意味着有人有权与他们共享该文件。这通常被称为"公共,不可限制的URL"或"签名URL",因为加密签名通常用于传达某些主张(例如,URL有效多长时间,有效的操作等等。)。<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>

我们认为,做出只能由"内部"应用程序用户可以使用的"外部"表示,尽管如果您不同意,我会愿意听到您的用例。

最新更新