サンプルコード解説

脆弱性のあるソースコード

それでは、実際に脆弱性のあるソースコードを見てみましょう。
以下のコードは、画面に入力された情報をファイルに出力する処理ですが、他のアプリから情報を読み取れるファイルを作成してしまう脆弱性があります。
openFileOutput()を呼び出す際に、MODE_WORLD_READABLEを指定しているため、他のアプリから読み取りアクセス可能なアクセス権設定でファイルが作成されています。
プロジェクト FileaccessData
ソースファイル RegisterActivity.java
try {
	// ▼▼▼脆弱性のあるソースコード▼▼▼
	// ファイルを開く処理
	outputStream = openFileOutput(STRAGE_FILE_NAME, MODE_WORLD_READABLE | MODE_APPEND);
	// ▲▲▲脆弱性のあるソースコード▲▲▲