1

我正计划开发一个应用程序,我不希望它“仅在线”,所以我希望能够在用户设备内部存储数据,即应用程序数据。这是“安全的”吗?或者人们可以摆弄应用数据吗?是否有任何安全的离线方式来存储应用程序数据?

我尝试阅读http://developer.android.com/guide/topics/data/data-storage.html#filesInternal这表明它是安全的,但在其他地方有人说有根手机可以忽略这一点。那么它是否安全?- 如果是这样,如果手机已植根,有什么方法可以“阻止应用程序”?

4

3 回答 3

3

我遇到了同样的问题,但发现加密是处理这种情况的唯一机制,但这当然会增加设备的负担,但如果这是强制性的,那么唯一的选择是使用加密或隐写术

于 2012-10-11T12:34:17.670 回答
3

在有根手机上,用户可以读取数据。

Google 尝试使用 JellyBean 加密应用程序数据以防止这种情况发生,但该功能目前被禁用,因为它破坏了太多应用程序。

您可以检测到一些对手机进行生根的方法,例如使用roottools。但是没有可靠的方法来检测手机可以植根的所有方式。

即使您可以确保手机没有被root,在您下载数据后,什么会阻止用户对手机进行root?

请注意,即使您不将数据下载到文件中:使用已root 的手机,攻击者仍然可以将您的应用程序的.dex 文件传输到他的PC。然后他可以反编译它(例如通过使用dex2jarjd-gui)以获取有关如何从您的服务器读取数据的信息。因此,您的应用程序从服务器访问的任何信息也可能被攻击者访问。

于 2012-10-11T13:23:03.943 回答
0

这是“安全的”吗?

默认情况下,它对其他应用程序是安全的。

在其他地方有人说有根手机可以忽略这一点

root 手机的用户可以运行具有超级用户权限的应用程序,这些应用程序可以访问设备上的任何文件。

因此,内部存储上的数据对用户来说是不安全的,因为它是用户的电话,而不是你的,因此它是用户的数据,而不是你的。大多数用户不会触碰您的数据,但所有用户都有权触碰,前提是他们采取了足够的措施。

如果是这样,如果手机已植根,是否有任何方法可以“阻止应用程序”?

没有可靠的方法来确定手机是否已植根。

于 2012-10-11T13:15:01.193 回答