【问题标题】:Firebase firestore and cloud storage: can an if else check be safe on client side? [duplicate]Firebase firestore 和云存储:if else 检查在客户端是否安全? [复制]
【发布时间】:2021-09-29 03:23:42
【问题描述】:
我将大致解释一下我的应用程序的代码(react native with expo):
- 我查询 firestore 以获取某个文档的 X 值。
- 在客户端我执行以下操作:如果 X> = 100 则查询云存储以获取某个文件,否则如果 X
就安全性而言,拥有一个文件而不是另一个文件非常重要。您认为步骤 1) 可以更改(firestore 响应)还是恶意用户可以执行其他操作来获取他想要的文件,而不管 X 的值如何?
【问题讨论】:
标签:
firebase
google-cloud-firestore
https
firebase-storage
man-in-the-middle
【解决方案1】:
是的,客户端的任何东西都可以改变,这样简单的 if else 语句是不好的。你说的那个X是什么?对每个用户来说都是独一无二的吗?如果是,那么您应该考虑使用 Firebase 自定义声明以及存储安全规则。您将 X 的值与 Firestore 一起存储在用户的自定义声明中。
其他选项是使用 Cloud 函数使用签名 URL(基本上具有较短的 likespan)。当用户请求某些内容时,通过云功能检查 Firestore 中的值,如果满足需要,生成签名 url 并返回给用户。