firebase - Firebase 云功能安全
问题描述
我正在使用带有 admin sdk 的 firebase 云功能,以便代表用户对实时数据库执行一些操作。
例如,如果用户想在数据库中存储一个新参数,它将在其 android 客户端上按下一个按钮,该按钮依赖于一个可直接调用的函数 (onCall)。此可调用函数会将参数保存在数据库中的正确位置。
现在,我了解onCall函数在上下文参数中自动接收一些关于用户的信息,例如用户id和令牌,但我不知道这些参数是否用于控制用户的有效身份。
由于该功能是在完全权限模式下使用 admin sdk 运行的,所以我想确保用户是他声称的那个人。在一个用户窃取另一个用户的 uid 并使用此 uid 但使用自己的 Auth 令牌调用函数的情况下,他会被检测到吗?
该函数是否检查用户 ID (uid) 是否符合 Auth 令牌?
如果是,我唯一要做的就是检查 context.auth 是否与 null 不同?
解决方案
只是从评论中移开, context.auth.uid 值是经过服务器端验证的,因此您可以相信用户没有操纵该值。(请参阅此处的代码。)现在,当您使用 firestore 或 realtime db admin API 时,该函数可以访问数据库中的任何值,因此您需要确保用户可以访问数据库中的值(即添加a 其中 uid='uid')。
推荐阅读
- substrate - 存储值的多地址查找使用:`T::lookup:lookup(Vec<[u8; 32], Global>)`?
- excel - 如何使范围从下到上开始?VBA
- angular - 从搜索框输入中过滤 *ngFor 结果
- html - CSS 居中的方形子元素受其父元素的宽度和高度限制(如 background-size:contain + center)
- javascript - ChartJS - 在条形图/折线图上单独显示/隐藏数据而不是整个数据集
- react-native - 在状态变化中反应原生测试
- android - 已修复 - Android Studio Artic Fox - 每次 AS 重启后设备文件资源管理器丢失
- android - Kotlin:如何使用 Volly 调用 API 并通过 Callback 方法同步获取响应
- powershell - 无法使用 Teams PowerShell 模块在自适应卡片中提及人员
- elasticsearch - ElasticSearch 日期字符串查询