我想知道资源目录NSBundle.mainBundle().pathForResource("xxxx", ofType: "db")
中的数据库文件是否可以在越狱设备中看到?
可以通过与越狱设备连接的程序查看某些目录和文件,例如文档和库。我正在考虑是否需要加密数据库文件的内容。
答案 0 :(得分:1)
所有应用程序文件都可供用户使用,不论是否已越狱,无论是在沙箱目录中还是在.ipa中。
问题中未说明的是,在创建应用程序期间将预先填充数据库,如果是,则它将是只读的或允许添加/更改。资源目录中的db是只读的,必须将其复制到沙箱目录才能写入。
加密是增加工作因素的一种选择,即通过增加获取访问权限的难度来更难获取数据库内容并阻止好奇心。
加密的问题在于密钥需要可用于应用程序代码,并且没有安全的方法可以让代码可用,也不会让确定且有能力的攻击者使用密钥。您需要定义攻击者和数据的值。
但如前所述,增加工作因素可以提供有意义的安全性。最简单的方法是加密数据库并将密钥放在源代码中并尝试使其不明显。
答案 1 :(得分:0)
由于您可以在越狱设备上访问所有文件:是的,用户可以在越狱设备上查看您的数据库。但是,由于它在您的捆绑包中,所有用户都需要看到您的文件是IPA。