热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Firebase数据库-与在客户端公开uid相关的风险?

如何解决《Firebase数据库-与在客户端公开uid相关的风险?》经验,为你挑选了1个好方法。

简短的问题:如果我在客户端公开其他用户的UID,会有什么风险/问题?

我的情况:我正在构建一个测试android应用程序,该应用程序必须能够允许1)用户foo请求授权,以便2)访问用户A的私有数据。

我不知道这是否是“ du”的事实,但是我似乎在Firebase上找不到关于“请勿暴露UID”的任何警告。我一直在浏览用户安全部分和Firebase的聊天示例演示,并且常用的方法似乎是创建一个“共享”或“授权”字段,其中授权用户的uid为true。我的问题主要是关于第一步。以下是我的数据结构的摘要。

 {
      "users" : {
        "uid_of_user_a" : {
          "requests" : {
            "-KeXTQeFJ2gAiaazteO1" : {
              "requestUid" : "uid_of_user_foo",
              "targetUid" : "uid_of_user_a",
              "timeStamp" : 123456
            }
          }
        }
      }
    }

我的想法是这样。

    请求字段的规则是:对于具有uid_of_user_a的用户,该字段是可读写的;对于任何经过身份验证的用户,只有当该用户推送与uid_of_user_a匹配的targetUid时,该字段才可写入。

    在客户端,用户A附加了一个onChildEventListener,并带有对此字段的引用。当客户端收到onChildAdded回调时,将出现一个对话框,要求您进行确认。

    如果确认,则客户端从请求消息中检索请求者的uid,并将其推送到“授权”字段

    然后,用户A的私有数据可以被授权字段中列出的uid读取。

问题:需要向客户端公开另一个用户的uid。此方法类似于打电话给某人一样,呼叫者必须先知道接收端的电话号码。因此,在没有实际给出电话号码和电子邮件的情况下,某人必须以某种方式知道UID,以便甚至传递消息并要求获取可共享的数据,对吗?....但是,我的直观方法似乎很琐。

我一般是Firebase数据库和用户身份验证的新手,所以请原谅我的法语:)在此先感谢所有专家。



1> Doug Stevens..:

UID只是一个字符串。里面没有信息。秘密信息是用户的密码(您永远不会看到)和他们的临时身份验证令牌,该令牌在一个小时后失效。SDK将自动刷新该令牌。

如果正确设置了安全规则,则没有问题。如果一个用户知道另一个用户的UID,则在您的规则不允许的情况下,第一个用户无法做任何事情来影响第二个用户的数据。您可能需要将有关用户的公共和私人信息划分到不同的位置,以便他们可以有单独的安全规则(如果需要)。

如果出于某种原因您仍然认为需要对UID进行保密,则可以生成一个不同的UUID或其他东西来标识用户并使用它,但是我不知道它将提供什么额外的安全性。


推荐阅读
  • 我正在尝试将Firebase添加到涉及添加以下内容的现有应用程序中:classpath'com.googl ... [详细]
  • 工作用可能会用到会话分组:Message是消息实体对象,里面有toId和fromId指明接收方ID和发送方Id,通过组合形式“12-22-”为map的key其中Mess ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
author-avatar
小染雪_647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有