Ios 如何确保从我的应用程序发送到数据库的数据的完整性?

Ios 如何确保从我的应用程序发送到数据库的数据的完整性?,ios,swift,firebase-realtime-database,jailbreak,data-integrity,Ios,Swift,Firebase Realtime Database,Jailbreak,Data Integrity,我目前正在使用Swift创建一个iOS应用程序。对于数据库,我使用Firebase实时数据库,其中存储了有关用户的信息以及用户发送给我的请求。 对于我的应用程序来说,数据库中的数据不被破坏是非常重要的。 为此,我禁用了数据持久性,这样就不必在设备上本地存储请求。但是我想知道,在我的应用程序执行期间,用户是否可以直接修改变量的值,并且仍然发送错误的请求。 例如,用户有许多硬币,他可以访问应用程序的内存,修改硬币的数量,返回应用程序并发送错误的请求,而无需自己修改。 如果是这种情况,那么禁用数据持久

我目前正在使用Swift创建一个iOS应用程序。对于数据库,我使用Firebase实时数据库,其中存储了有关用户的信息以及用户发送给我的请求。 对于我的应用程序来说,数据库中的数据不被破坏是非常重要的。 为此,我禁用了数据持久性,这样就不必在设备上本地存储请求。但是我想知道,在我的应用程序执行期间,用户是否可以直接修改变量的值,并且仍然发送错误的请求。 例如,用户有许多硬币,他可以访问应用程序的内存,修改硬币的数量,返回应用程序并发送错误的请求,而无需自己修改。 如果是这种情况,那么禁用数据持久性真的更安全吗?还是这是一种误解? 另外,禁用越狱设备是否解决了我的问题?因为我听说普通用户仍然可以在发送请求备份之前修改它们

总而言之,我想知道我的想法是否正确?防止本地保存请求真的有用吗?或者恶意用户在执行过程中可以直接修改变量的值,而无需越狱

我也想找到一个解决方案,使我的数据库中的数据是可靠的

感谢您的关注:)


PS:我还设置了数据库的安全规则,以便只有登录的用户才能在他的区域中写入和读取。

< P>您应该将服务器端数据当作唯一的真实来源,并考虑来自客户端的所有数据都是可疑的。 为了保护服务器端数据,您应该实现Firebase的服务器端。有了这些,你可以和

在遵循上述两条规则之后,禁用客户端持久性,或者像前面的问题一样禁用写队列,并不是很有用,也不是必需的


作为一个附加的安全层,您可以启用Firebase的新功能,它与设备上的所谓认证提供商(iOS上的DeviceCheck)一起检测篡改,并允许您仅允许来自未损坏设备的请求


通过结合应用程序检查和安全规则,您可以获得广泛的保护,防止滥用,并对数据结构和谁可以访问哪些数据进行细粒度控制。

感谢您的回复。但是,从我之前的帖子中看到,没有篡改手机的用户仍然可以在发送请求之前修改请求。在我的例子中,不是发送一个包含100件的请求,而是发送一个包含10000件的请求。因此,我输入的安全规则不会阻止已损坏的请求被执行。此外,我不知道如果没有越狱或特殊根,用户是否可以在我的应用程序执行期间直接修改我的变量(我将在请求中发送),但如果是这样,应用程序检查对我有什么好处?