【问题标题】:Using Firestore with offline persistence - Desktop (web)使用具有离线持久性的 Firestore - 桌面(网络)
【发布时间】:2021-08-11 12:43:54
【问题描述】:

Firestore 中的离线持久性使浏览器能够存储即使在会话关闭(浏览器退出)后仍未上传到服务器(离线)的记录

请看:https://firebase.google.com/docs/firestore/manage-data/enable-offline

但是,当用户从会话中注销时,firestore 不提供任何官方支持的方式来清除 Chace。请参考:https://youtu.be/qGAIimfrBB4?t=257

最近他们发布了 clearPersistence 功能,但他们明确声明这不是出于安全原因,如果安全对您来说很重要,建议禁用 Persistence。请看:https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#clearPersistence()

注意:clearPersistence() 主要是为了帮助编写可靠的 使用 Cloud Firestore 的测试。它使用一种有效的机制 删除现有数据但不尝试安全覆盖或 否则使缓存的数据不可恢复。对于应用程序 对用户会话之间缓存数据的泄露敏感, 我们强烈建议不要启用持久性。

我想更好地了解在用户注销时使用“ClearPersistence”有什么安全漏洞。

任何人都经历过吗?是否有其他可行的解决方案可让您在注销后删除所有 Firestore 缓存?

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    无法保证您的代码将在浏览器(或任何其他客户端)中运行。例如:恶意用户可以从您的应用程序中获取配置数据,并调用 API 以访问您项目中的相同数据,然后将其存储在他们想要的任何位置。

    另一个恶意用户可能会阻止应用清除本地缓存,或快速将本地缓存文件复制到另一个位置以在清除之前进行复制。

    这只是两个最简单的例子。一个简单的事实是,您应该假设任何存在/保留在客户端上的数据都可以被任何有权访问该客户端的用户看到。

    【讨论】:

    • 假设在恶意用户有机会执行任何操作之前调用了 clearPersistence。他还能访问用户数据吗?即使 clearPersistence 运行成功?初始化firestore会话后甚至可以运行clearPersistance吗?我不担心用户在仍然登录时可以访问他们的数据。我担心他们在注销后可以访问它。
    • 您的回答一般都在谈论安全漏洞,而不是特定于用户退出后运行 ClearPersistence 功能的安全漏洞。
    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 2022-12-15
    • 2021-04-25
    • 2019-03-06
    • 1970-01-01
    • 2018-05-24
    • 2021-10-27
    • 2020-05-23
    相关资源
    最近更新 更多