Firebase 通过断开设备连接并仅使用缓存的文档,防止用户绕过安全规则

Firebase 通过断开设备连接并仅使用缓存的文档,防止用户绕过安全规则,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我对使用firebase离线功能的应用程序有以下顾虑: 用户读取文档,然后禁用设备的连接。下次他打开应用程序时,文档仍然被缓存,他可以阅读文档,即使他可能不再有阅读此文档的权限 一个具体的例子是,如果用户购买内容并在以后退款。他可以随时禁用设备的连接,以便将内容保留在本地,即使内容已经退款 现在,如果在他打开应用程序时发生几次这种情况,这不是问题,但据我所知,firestore缓存只受大小而不是持续时间的限制,因此他可以无限期地访问内容,只要他在使用应用程序时不建立连接 是否有防止此问题的最佳做

我对使用firebase离线功能的应用程序有以下顾虑:

用户读取文档,然后禁用设备的连接。下次他打开应用程序时,文档仍然被缓存,他可以阅读文档,即使他可能不再有阅读此文档的权限

一个具体的例子是,如果用户购买内容并在以后退款。他可以随时禁用设备的连接,以便将内容保留在本地,即使内容已经退款

现在,如果在他打开应用程序时发生几次这种情况,这不是问题,但据我所知,firestore缓存只受大小而不是持续时间的限制,因此他可以无限期地访问内容,只要他在使用应用程序时不建立连接

是否有防止此问题的最佳做法


一个可能的解决方案可能是这样的:检查设备是否有连接,然后保存设备连接的最后日期。在每个打开的应用程序上,我们都会检查设备最后一次连接的时间是否超过某个阈值,如果是这种情况,请清除缓存或仅显示“建立连接”屏幕。这种方式的问题是,“诚实”的用户还需要定期重新连接。有更好的解决方案吗?

Firestore安全规则仅在服务器上实施,而不是在客户端上实施。一旦文档到达客户端,您应该假设该设备上的任何用户都可以访问它

如果您想要一种不同的方式来访问该文档中的内容,请考虑使用另一种/不同的机制来保护它。根据您的描述,这里可能是使用数字版权管理(DRM)软件的地方