angular - 仅存储 Firebase 存储下载 URL 令牌(不是完整路径)是否安全?
问题描述
我有一个使用 Firebase 存储的 Angular 应用程序来存储用户上传的照片文件。用户上传文件后,我调用 getDownloadURL()(返回 Observable)来获取完整的公共 URL 路径。我想将 URL 字符串存储在 Firestore 数据库中,以便可以将其绑定到 img html 元素 src 属性以显示在网页上。这将使我不必调用 Storage 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
解决方案
您从 API 收到的唯一保证是整个 URL 将获取存储中的文件。你应该不透明地对待它,而不是试图分解或解释它的组成部分。
推荐阅读
- excel - 出现运行时错误“-2147221233 (8004010f)”,然后出现运行时错误“462”远程服务器机器不存在或不可用
- spring-security - 在控制器中生成有效的 hdiv url
- c++ - AMQP-CPP,libev > 从另一个线程停止 ev_loop
- java - 从 XML 模式文件和 XJB 绑定生成具有常量的 JAXB 类
- r - 使用提取和/或分离将变量字符串与数据帧隔离开来
- node.js - POST Route 到 END Route
- python - 将 Kafka 与 Python 结合使用的最小示例是什么?
- marklogic - 如何将数据复制到不同的集合中以便在 MarkLogic 中重复使用?
- c# - 在不使用实体框架的情况下跟踪对类所做的更改
- php - 检查是否在 Drupal 8 Twig 模板中选中了多值复选框