使用产品保修注册网页,购买我的产品的用户可以注册保修。用户输入的数据将写入 Firestore。 但是,在注册保修时,他们不必登录或验证。 有没有办法强制执行安全规则,允许用户仅在我的网页上输入数据? (基于 CORS 标头等)
答案 0 :(得分:0)
Firebase 规则并不真正关心 CORS 或您请求中的任何标头。此处的理想情况是强制执行身份验证以确保您的数据安全,事实上,如果您选中 this documentation,则开放访问被视为不安全的 Firebase 规则。
如果这不是您的选择,您可以尝试设置一个中间人来处理对 Firestore 的此特定请求,该中间人可以处理 CORS 和具有某些逻辑的请求标头,并为此与 Firestore 进行实际交易我建议创建一个 HTTP 云函数。
通过这种方式,您可以在请求处理背后添加一些逻辑,并使用限制性 Firebase 规则实际关闭外部用户对 Firestore 的访问,因为 Cloud Functions 不受这些限制。但是,由于使用了 Cloud Function,这会给您的项目带来一些额外的成本。