javascript - 客户端是否能够更改 onauthchanged firebase 实时数据库的用户对象?
问题描述
我想知道客户端是否能够将用户对象从 null 更改为某个值(通过控制台)并无需登录即可访问经过身份验证的资源。
我了解您可以使用以下代码:
auth.onAuthStateChanged(user => {
if (user) {
console.log("user signed in")
console.log(user)
} else {
console.log("user has signed out")
}
});
firebase 如何阻止客户端尝试更改用户对象?
如果这是一个问题,是否有更安全的方法来处理这个问题?
我将如何实施它?
谢谢。
解决方案
更改user
您共享的代码中的对象不会让用户访问 Firebase 实时数据库中的其他信息。
在数据库的安全规则中,有关用户的信息通过auth
变量公开。此变量由 Firebase 从向数据库发出请求的用户的 ID 令牌填充,并且不能被普通用户欺骗。
因此,虽然用户可能会更改user
客户端代码中的变量,但这不会影响auth
服务器端安全规则中的变量。这就是保护数据访问服务器端(如在安全规则中)而不仅仅是客户端安全很重要的原因之一。
推荐阅读
- c# - Trying to detect and gather data on click outside application
- r - 如何计算特定条件下的航班数量
- python - Using Python Descriptors in Inherited Classes
- regex - optimizing regex substitution runtime
- sql - 自加入问题,2017 年附近的语法不正确
- flutter - 无效的参数:找不到可执行文件的位置。:颤动
- swift - 如何确定 .background() 需要指定颜色,然后输入 .colorName (作为文本修饰符)
- batch-file - 批量过滤文件中的匹配行以输出
- javascript - Ajax:为什么 post 请求会被触发两次?
- algorithm - 解决迷宫的最佳算法?