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

FirebaseAppCheck的目的是什么?

我想提高我的应用程序的安全性,我正在研究FirebaseAppCheck服务,该服务确保向服务器发出的所有请求都来自我的应用程序。仅在Firebase实时数据库中,我设置了以下

我想提高我的应用程序的安全性,我正在研究 Firebase App Check 服务,该服务确保向服务器发出的所有请求都来自我的应用程序。仅在 Firebase 实时数据库中,我设置了以下规则:

"Users": {
"$userId": {
".read": "auth != null && $userId === auth.uid",
".write": "auth != null && $userId === auth.uid",
}

我认为这可以确保请求来自登录到应用程序的用户。

那么 App Check 做的更多,该服务是否也阻止越狱或特别植根的设备?因为它在网站上说:请求来自真实的、未被篡改的设备。但是介绍中没有任何内容明确提到篡改意味着什么,即使我宁愿确定这似乎合乎逻辑。

那么 AppCheck 如何确保发送到数据库的数据没有损坏呢?

例如,如果启用数据持久性并且用户关闭应用程序,则更改本地存储的查询并重新启动应用程序。然后在我看来,损坏的请求将由 AppCheck 发送和验证,但它会被修改。如果没有,你能不能详细说明一下这个过程,因为我有点困惑。

回答

如果您只有显示的安全规则,并且不使用 App Check,则任何人都可以从您的应用中获取配置数据,并使用该数据进行 API 调用。因此他们可以调用 API 来创建用户帐户,并以您可能无法想象的方式调用数据库。

如果您的安全规则捕获了您对数据的所有要求,那么 App Check 确实不会改变恶意用户可以做什么,它只是阻止滥用者的额外层。

但是,在许多情况下,您的应用程序代码所做的与您的安全规则执行的内容之间存在(有时是细微的)差异。在这种情况下,滥用用户可能会运行他们自己的代码并执行与您的代码不同的操作。

例如,您的安全规则不执行任何东西什么可以写入数据。因此,滥用用户可以:


  • 不要在用户配置文件中写入您的代码期望的数据。

  • 在您的代码不期望的用户配置文件中写入完全不同的数据。

  • 将更多数据写入配置文件,然后您的项目将为此付费。

虽然您可以(并且应该)将所有这些关于数据格式和数据大小的要求编码到您的安全规则中,但启用 App Check 是一种快速阻止许多恶意用户的方法。

在使用 App Check 和安全规则之间,您既可以得到广泛的保护,又可以细粒度地控制谁可以访问数据以及他们可以对数据做什么。



  • That's indeed one abuse scenario. . If my answer was useful, click the upvote button (▲) to the left of it. If it answered your question, click the checkmark (✓) to accept it. That way others know that you've been (sufficiently) helped. Also see [What should I do when someone answers my question?](https://stackoverflow.com/help/someone-answers)





推荐阅读
  • mybatis相关面试题 ... [详细]
  • 我从GoogleFirebase服务中看过视频并阅读了Cloudfirestore的文档,但我无法想象实时数据库.我想到了这个Web应用程序,我希望从不同类别的产品中存储我的提供程 ... [详细]
  • 2019 年 Firebase 峰会上发布的新功能
    作者FrancisMa,HeadofProductFirebase的使命是帮助移动开发者和Web开发者迈向成功,但考虑到Firebase每个月有超过200万个活跃的应 ... [详细]
  • 本文旨在探讨计算机机房的有效管理与维护方法,包括合理的机房布局设计、高效的操作系统安装与恢复技术以及数据保护措施。随着信息技术教育的发展,计算机机房作为教学的重要组成部分,其稳定性和安全性直接影响到教学质量。文章分析了当前机房管理中存在的问题,并提出了针对性的解决方案。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文旨在探讨Linux系统中两种重要的进程间通信(IPC)机制——System V和POSIX的标准及其特性,为开发者提供深入的理解。 ... [详细]
  • 微服务架构详解及其入门指南
    本文详细介绍了微服务的基本概念、发展历程、与传统架构的区别及优势,并探讨了适合采用微服务架构的场景。此外,文章还深入分析了几个主流的微服务开发框架,特别是Spring Cloud的组成和特点。 ... [详细]
  • Android 5 及以上版本中使用存储访问框架(SAF)实现 SD 卡写入权限的方法
    本文探讨了在 Android 5 及更高版本中通过存储访问框架(Storage Access Framework, SAF)实现对 SD 卡文件的写入与重命名操作。文章分析了 SAF 的工作原理,并提供了一个示例应用的代码实现,展示了如何正确获取并使用用户授予的写入权限。 ... [详细]
  • 使用Python模拟登录教务系统抓取成绩并分析存储
    本文详细介绍如何使用Python编程语言模拟登录学校教务系统,抓取学生的成绩信息,并进行数据分析和可视化处理,最终将数据存储到MySQL数据库中。 ... [详细]
  • Hibernate入门指南:单表数据库操作详解
    本文介绍了Hibernate作为全面的ORM框架的基础知识,并详细讲解了在MyEclipse环境中配置Hibernate以及进行基本的数据库单表操作的方法,包括增删改查等常见操作。 ... [详细]
  • Windows 系统中 Flutter 与 IntelliJ IDEA 的环境配置指南
    本指南详细介绍了如何在 Windows 操作系统上设置 Flutter 开发环境,并集成至 IntelliJ IDEA 中,适合初学者及专业人士参考。 ... [详细]
  • 解决MySQL Administrator 登录失败问题
    本文提供了解决在使用MySQL Administrator时遇到的登录错误的方法,包括启动变量和服务部分禁用的问题。同时,文章还介绍了通过安全配置模式来解决问题的具体步骤。 ... [详细]
  • 2023年PHP处理请求超时的全面指南
    本文详细介绍了在PHP中处理请求超时的各种方法,包括设置脚本执行时间、处理file_get_contents函数超时以及优化AJAX请求等,适合开发者参考学习。 ... [详细]
  • 运用DDD分层架构优化微服务代码设计
    在微服务实施过程中,确定合理的代码结构至关重要。本文探讨了如何利用领域驱动设计(DDD)的分层架构来优化微服务的代码模型,确保系统的可维护性和扩展性。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
author-avatar
开心小笨笨猪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有