3

私はpdfファイルをダウンロードするAndroidアプリケーションを開発しています。NameProjectそこで、ダウンロードしたすべての pdf を置く場所という名前のファイルを作成します。このファイルには、自分のアプリケーションからも、File Manager などの他のアプリケーションからもアクセスできます。Android ファイル システムは開いているため、ダウンロードしたファイルがアプリ自体の外部からアクセスされないように保護する必要があります。

それをしてもいいですか?もしそうなら、どんなアイデアでも大歓迎です。

ありがとう

4

2 に答える 2

1

ここではアンドロイドの専門家ではありません。したがって、異なるアプリケーション間でファイルがどのように保護されているかわかりません。ただし、いずれにせよ、デバイスがルート化されていれば、それは問題ではありません。

それは私が容認したり実践したりするものではありませんが、あなたの唯一の希望の光は、あいまいさによるセキュリティです. つまり、これらのファイルをアプリケーションのファイルシステム空間に配置するときは、暗号化スキーマを使用してファイルを暗号化します。アプリケーションに復号化アルゴリズムがあることを確認してください。ここでは、PDFについて言及したため、これらは読み取り専用ファイルになると想定しています。そうでない場合、つまり、エンド ユーザーがそれらを編集して保存できる場合は、アプリにも暗号化機能が必要になります。

これで、私がどこに行こうとしているのかの要点がわかったと思います。

  1. エンド ユーザーがアプリを起動し、表示するファイルを選択する
  2. アプリケーションはそのファイルを一時的な名前に復号化します
  3. a. (オプション) ユーザーがファイルを編集して保存する
  4. b. (オプション) アプリケーションはファイルを暗号化し、元の名前で保存します
  5. アプリケーションは一時的な暗号化されていないファイルを削除します

アプリケーションの外部からアクセスできないことがどれほど重要かによっては、このロジックを別の一連の条件とそれらに対する対策にラップすることをお勧めします。

しかし結局のところ、決心した精神はそれらを解読する方法を見つけることができ、最終的には見つけるでしょう. 特に、アプリをインターネットなどに公開する場合は注意が必要です。制御された企業環境の展開では、企業ポリシーなどを使用して、長期間それらを秘密にしておく可能性が高くなります。しかし、最終的には、これは無駄な努力です。それはあなたに時間を稼ぐだけです。どのくらいの時間、唯一の問題です。

お役に立てれば

于 2012-11-15T21:31:34.467 に答える
1

ルート権限なしではアクセスできないアプリケーション内部ストレージ ディレクトリ (/data/data/ packagename ) にファイルをダウンロードします。ただし、多くの電話機は内部メモリが小さいため、必要なファイルだけを保存してください。

File appdir = context.getDir("mydir", Context.MODE_PRIVATE);

File fileWithinAppDir = new File(appdir, "appfile");

于 2012-11-15T21:32:31.517 に答える