Java 使用本地JSON文件存储数据的Android应用程序是否易受攻击?

Java 使用本地JSON文件存储数据的Android应用程序是否易受攻击?,java,android,json,security,code-injection,Java,Android,Json,Security,Code Injection,我的Android应用程序使用纯文本JSON文件来存储一些数据。这些文件保存在应用程序的私有文件夹中,例如Android/data/com.example.app/。我想知道我的应用程序是否容易受到此类文件的攻击。这些文件中的数据既不敏感也不保密,而且不由JavaScript处理(它们是用JSON Java方法解析的);我担心一些恶意的JSON代码会被注入并弄乱我的应用程序或用户的设备。有可能吗?即使注入的代码不是恶意代码,也会导致您出现问题,因为: 其他人可以查看和更改该文件。(至少对于根设

我的Android应用程序使用纯文本JSON文件来存储一些数据。这些文件保存在应用程序的私有文件夹中,例如Android/data/com.example.app/。我想知道我的应用程序是否容易受到此类文件的攻击。这些文件中的数据既不敏感也不保密,而且不由JavaScript处理(它们是用JSON Java方法解析的);我担心一些恶意的JSON代码会被注入并弄乱我的应用程序或用户的设备。有可能吗?

即使注入的代码不是恶意代码,也会导致您出现问题,因为:

  • 其他人可以查看和更改该文件。(至少对于根设备)
  • 如果更改了内容,则在解析文件时很容易出现意外结果
  • 你不会希望你的应用程序相关数据被其他人以任何方式修改,除非你愿意(但通过使用内容提供商)

我希望这是有意义的。

默认情况下,用户或其他应用程序都无法访问存储在私人文件夹中的数据。请参阅Android开发者网站上的相关文档:

但是,如SMR所述,如果设备已根目录,则该数据可供用户使用,并且可能会被用户授予根目录权限的任何应用程序破坏。 然而,只有少数用户是真正扎根的,那些扎根的用户应该或多或少地知道他们自己陷入了什么,他们的行动能做什么。这取决于你决定是否值得为这些特殊情况付出一些努力


但是默认情况下,您的数据应该是安全可靠的。

如果数据没有那么私人,那么您可以将这些数据放在资产文件夹中,并可以访问相同的数据。如果不是这样,则可以将其保存在应用程序数据文件夹中

,但如果找不到任何替代方案,则可以使用某种合理的签名,该签名将始终让应用程序识别经过身份验证的JSON文件,并将其与恶意文件区分开来。。。。这有意义吗?