Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有关配置xml文件的安全问题_Java_Android - Fatal编程技术网

Java 有关配置xml文件的安全问题

Java 有关配置xml文件的安全问题,java,android,Java,Android,在我的应用程序中,我有一个正在解析的config.xml文件,。在这个配置文件中,有一些数据我不知道最终用户在明文中看到了什么。在这种特殊情况下,邮件帐户的密码。config.xml文件保存到一个具有路径的文件夹中 /mnt/sdcard/my_application_folder/config.xml 我查找了类文件提供的一些方法 setReadable(布尔值) setExecutable(布尔值) 可设置写(布尔值) 我尝试以这种方式应用这些方法: String path = f

在我的应用程序中,我有一个正在解析的
config.xml
文件,。在这个配置文件中,有一些数据我不知道最终用户在明文中看到了什么。在这种特殊情况下,邮件帐户的密码。
config.xml
文件保存到一个具有路径的文件夹中

/mnt/sdcard/my_application_folder/config.xml  
我查找了类
文件提供的一些方法

  • setReadable(布尔值)
  • setExecutable(布尔值)
  • 可设置写(布尔值)
我尝试以这种方式应用这些方法:

String path = folder.getPathToNode() + "/config.xml";
configFile = new File(path);

if(configFile.exists()) {
    configFile.setReadable(false);
    configFile.setExecutable(true);
    configFile.setWritable(false);
}
我想你们中的一些人会建议我将这些数据存储在
SharedReferences
中,但我的应用程序有两个用户组,最终用户组和一个管理员组,他们将在他的计算机上编辑
config.xml
,并将文件传输到手机上

我可以打开
Astro文件管理器
并以纯文本形式查看
config.xml
,但我不应该这样做,因为文件不可读


如果应用上述值,是否可以解析此
config.xml
?有人能为这个“安全问题”提出另一个解决方案吗

不要将敏感数据保存在SD卡/外部存储器上。任何应用程序都可以读取它,即使没有特殊权限。找到另一种更新设置的方法(通过用户界面、服务器推送等),或者至少想出一些加密或混淆敏感信息的方法。外部存储通常是VFAT(或模拟它),因此无法设置文件权限

除了尼古拉,用纯文本存储密码从来都不是一个好主意。我不是安卓专家,但我确信他们为[en/de]加密数据提供了api。

请参阅关于安卓数据安全的众多讨论。简而言之,你不能,如果你正在考虑在设备上存储密码(我假设不是用户),我建议重新考虑你的方法。