我正在使用 core data 将数据存储在 sqlite 数据库中。我是否需要采取任何额外措施来保护它们?
此外,我在应用商店中发现了一些 sqlite 浏览器应用程序。我的疑问是,这些应用程序是否能够访问我的应用程序中使用的 sqlite 数据库,或者这些应用程序如何工作/对开发人员有用。
提前致谢。
最佳答案
这取决于您想保护数据库的程度。如果您不考虑越狱设备,将您的数据库存储在其他人无法访问的应用程序的私有(private)文件夹中就足够了。
然而,越狱设备的用户可以读取整个文件系统,包括您的 sqlite 数据库。如果您还必须考虑这种风险,您可以按照@Invincible 的建议加密数据库。这里的问题是您仍然需要将密码存储在应用程序的某个位置,通过一些努力可以对其进行逆向工程和提取。您可以而且应该使用一些混淆方法来存储您的密码,但这并不能为您提供 100% 的安全性。
“开放”(越狱)平台的安全问题是您无法访问攻击者无法访问的任何信息。但是,您可以通过应用不同的混淆和加密技术使攻击者的处境变得更加困难。你应该投入多少努力?您应该考虑以下因素:
- 丢失敏感数据的风险<=> 攻击者的 yield
- 你准备投入的努力 <=> 攻击者会投入多少努力
关于ios - 我是否需要做任何额外的工作来保护我的 iOS 应用程序中的 sqlite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937760/