サンプルアプリの脆弱性
サンプルアプリ「02電話帳バックアップ」に存在している脆弱性について詳しく説明します。
具体的にどのような実装が脆弱性につながっているのか、ソースコードを確認してみましょう。
脆弱性のあるソースコード
プロジェクト |
FileaccessSd |
ソースファイル |
MainActivity.java |
public void onClickSave(View v) {
// 入力内容の取得
String data = csvData.toString();
FileOutputStream fileOutputStream = null;
// 既存のファイルを一度削除した後、新たにファイルを作成
File file = new File(SD_FILE_PATH);
file.delete();
file.getParentFile().mkdir();
try {
// ▼▼▼脆弱性のあるソースコード▼▼▼
// 書き込み処理を行う
fileOutputStream = new FileOutputStream(file, true);
fileOutputStream.write(data.getBytes());
// ▲▲▲脆弱性のあるソースコード▲▲▲
|
脆弱性の原因となっている処理は以下の点です。
次は、脆弱性の修正方法について説明します。