0

私のアプリケーションには、config.xml解析中のファイルがあります。この構成ファイルには、エンドユーザーが平文で見ることができないデータがいくつかあります。この特定のケースでは、メール アカウントのパスワードです。ファイルは、config.xmlパスを持つフォルダーに保存されます

/mnt/sdcard/my_application_folder/config.xml  

クラスによって提供されるいくつかのメソッドを調べましたFile

  • setReadable(ブール値)
  • setExecutable(ブール値)
  • setWritable(ブール値)

これらの方法をこのように適用しようとしました:

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

if(configFile.exists()) {
    configFile.setReadable(false);
    configFile.setExecutable(true);
    configFile.setWritable(false);
}

このデータを に保存することを提案する人もいると思いますSharedPreferencesが、私のアプリケーションにはエンドユーザー管理者の 2 つのユーザー グループがあり、コンピューターでを編集しconfig.xml、ファイルを電話に転送します。

プレーン テキストで開いAstro File Managerて見ることができconfig.xmlますが、ファイルが読み取れないため、そうすべきではありませんか?

config.xml上記の値を適用すると、これを解析できますか? この「セキュリティの問題」に対する別の解決策を提案できる人はいますか?

4

2 に答える 2

2

機密データを SD カード/外部ストレージに保存しないでください。特別な権限がなくても、どのアプリケーションでも読み取ることができます。設定を更新する別の方法 (UI、サーバー プッシュなど) を見つけるか、少なくとも機密情報を暗号化または難読化する方法を考えてください。通常、外部ストレージは VFAT (またはそれをエミュレート) であるため、ファイルのアクセス許可を設定することはできません。

于 2012-10-02T09:03:11.170 に答える
0

ニコライに加えて、パスワードをプレーンテキストで保存することは決して良い考えではありません. 私は Android の専門家ではありませんが、データを [暗号化/復号化] するための API を提供していると確信しています。

于 2012-10-02T09:15:43.817 に答える