如何通过检查官方身份验证数据库中的正确用户ID来保护Firebase [英] How to secure Firebase by checking for correct userID in the "official" Authentication database
本文介绍了如何通过检查官方身份验证数据库中的正确用户ID来保护Firebase的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有用户,注册了Firebase身份验证的电子邮件功能。 只有经过身份验证的用户才能写入我的FiRestore数据库。
我的规则(摘自文档):
allow write: if request.auth != null;
允许访问存在非空auth对象的每个请求。这看起来不太安全。因为您只需使用任何auth = {something: "hacker"}
对象发出请求。
所以,为了避免这个问题。如何检查给定的request.auth.uid
是否实际来自Firebase身份验证服务?
推荐答案
request.auth
变量由Firebase根据客户端随每个请求一起发送的ID令牌在服务器上自动填充。为给定的Firebase项目创建ID令牌需要您有权访问该项目的管理凭据。
这意味着,只要您确保不公开共享项目的管理凭据,任何人都不能将自己的信息注入到ID令牌中,并且数据库中的request.auth
对象实际上是安全的,不会被篡改。
您问题中的规则限制谁可以写入数据,因为用户需要登录到Firebase身份验证才能写入。您通常还希望通过控制访问权限(例如,仅允许用户access their own data)和validating the data写入来限制用户可以执行的操作。
这篇关于如何通过检查官方身份验证数据库中的正确用户ID来保护Firebase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文