在iOS上的SQLite中存储数据的最佳和最安全的方法

时间:2015-12-15 22:55:32

标签: ios sqlite

这不仅仅是一个设计问题。

我有一个应用程序,我开始迁移到具有脱机模式。我正在使用SQLite和GRDB包装器。每次用户进行身份验证时,我都会下载一组用户配置文件数据,即用户ID,添加日期,访问级别,配置文件图像URL,设置等。然后,我将此信息存储到本地SQLite表中,该表与MYSQL在线版本的结构相匹配

我还在密钥链中存储身份验证令牌和密码,并在身份验证后将这些令牌和密码用于与服务器的所有通信(无用户ID)。

我的问题是,一旦用户退出,我是否应该删除SQLite中的现有表,从而清除所有以前的用户数据并为当前用户启动清理?

我担心的是前一个用户可用的信息的安全性,例如,user1在朋友电话上登录到应用程序。如果在注销时不清除信息,新数据是否可供新用户使用?显然不是通过应用程序本身,而是通过其他形式查看SQLite信息。

所有敏感信息,即密码等都存储在钥匙串中。

我意识到这可能是一个意见基础问题,但这就是我要找的东西,只是对你认为COULD效果最好的一些意见。

由于

1 个答案:

答案 0 :(得分:1)

如果在安装了所有应用程序的情况下给予或借出了iPhone,则新所有者可能能够读取填充了之前所有者信息的数据库。这就像借给你的电子邮件充满你的电子邮件。因此,您可能必须在用户注销时重置数据库,如果它可能包含敏感信息(并且一旦用户可以写文本或拍照,则可能是敏感信息)。我已经编写了一个确实如此的聊天应用程序。此外,感谢您使用GRDB; - )