在越狱设备中可以看到数据库文件吗?
Can database file be seen in a jailbreak device?
请问资源目录NSBundle.mainBundle().pathForResource("xxxx", ofType: "db")
中的数据库文件是否可以在越狱设备中看到?
一些目录和文件,例如文档和库,可以通过连接越狱设备的程序看到。我正在考虑数据库文件的内容是否需要加密
因为您可以在越狱设备上访问所有 文件:是的,用户可以在越狱设备上查看您的数据库。但由于它在您的捆绑包中,用户只需要 IPA 即可查看您的文件。
无论越狱与否,所有应用程序文件都可供用户使用,无论是在沙箱目录还是在 .ipa 中。
问题中没有说明的是,数据库是否会在应用程序创建期间预先填充,如果是,它将是只读的还是允许 additions/changes。资源目录中的数据库是只读的,必须复制到沙箱目录才能写入。
加密是增加工作因素的一个选项,即增加获取数据库内容的难度,并通过增加获取访问权限的难度来打消好奇心。
加密的问题是密钥需要对应用程序代码可用,但没有安全的方法可以让代码可用,也无法让有决心且有能力的攻击者可用。您需要定义攻击者和数据的价值。
但如前所述,增加工作因素可以提供有意义的安全性。最简单的方法就是对数据库进行加密,将密钥放在源代码中,尽量做到不显眼。
请问资源目录NSBundle.mainBundle().pathForResource("xxxx", ofType: "db")
中的数据库文件是否可以在越狱设备中看到?
一些目录和文件,例如文档和库,可以通过连接越狱设备的程序看到。我正在考虑数据库文件的内容是否需要加密
因为您可以在越狱设备上访问所有 文件:是的,用户可以在越狱设备上查看您的数据库。但由于它在您的捆绑包中,用户只需要 IPA 即可查看您的文件。
无论越狱与否,所有应用程序文件都可供用户使用,无论是在沙箱目录还是在 .ipa 中。
问题中没有说明的是,数据库是否会在应用程序创建期间预先填充,如果是,它将是只读的还是允许 additions/changes。资源目录中的数据库是只读的,必须复制到沙箱目录才能写入。
加密是增加工作因素的一个选项,即增加获取数据库内容的难度,并通过增加获取访问权限的难度来打消好奇心。
加密的问题是密钥需要对应用程序代码可用,但没有安全的方法可以让代码可用,也无法让有决心且有能力的攻击者可用。您需要定义攻击者和数据的价值。
但如前所述,增加工作因素可以提供有意义的安全性。最简单的方法就是对数据库进行加密,将密钥放在源代码中,尽量做到不显眼。