在我的应用程序中,我有一个正在解析的config.xml
文件。在这个配置文件中,有一些数据我不是最终用户在纯文本中看到的。在这种特殊情况下,是邮件帐户的密码。 config.xml
文件将保存到路径为
/mnt/sdcard/my_application_folder/config.xml
我查找了类File
我尝试以这种方式应用这些方法:
String path = folder.getPathToNode() + "/config.xml";
configFile = new File(path);
if(configFile.exists()) {
configFile.setReadable(false);
configFile.setExecutable(true);
configFile.setWritable(false);
}
我想有些人会建议我将这些数据存储在SharedPreferences
中,但我的应用程序有两个用户组,最终用户和管理员将编辑计算机上的config.xml
,并将文件传输到手机。
我可以打开Astro File Manager
并以纯文本格式查看config.xml
,但我不应该因为该文件无法读取?
如果我应用上述值,我可以解析此config.xml
吗?任何人都可以建议另一个解决这个“安全问题”的方法吗?
答案 0 :(得分:2)
请勿将敏感数据保存在SD卡/外部存储设备上。即使没有特殊权限,任何应用程序都可以读取它。找到另一种更新设置的方法(通过UI,服务器推送等)或者至少考虑一些加密或混淆敏感信息的方法。外部存储通常是VFAT(或模拟它),因此您无法设置文件权限。
答案 1 :(得分:0)
除了Nikolay之外,以纯文本格式存储密码绝对不是一个好主意。我不是机器人专家,但我确信他们为[en / de]地穴数据提供了api。