繁体   English   中英

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

[英]How to ensure the integrity of data sent to the database from my application?

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

总而言之,我想了解我的想法是否正确? 阻止请求在本地保存是否真的有用,或者无论如何恶意用户将能够在执行期间直接修改变量的值,而这无需越狱?

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

感谢您的关注:)

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

您应该将服务器端数据视为唯一的事实来源,并认为来自客户端的所有数据都是可疑的。

为了保护您的服务器端数据,您应该实施 Firebase 的服务器端安全规则 有了这些,您可以验证数据结构确保所有读/写都被授权

一旦您遵循上述两条规则,禁用客户端持久性或像您之前的问题一样编写队列并不是那么有用且没有必要。


作为额外的安全层,您可以启用 Firebase 的新App Check ,它与您设备上的所谓证明提供程序(iOS 上的 DeviceCheck)一起工作以检测篡改,然后允许您只允许来自未损坏设备的请求。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM