Hello there, ('ω')ノ
✅ 1. 不要な「権限」を要求しない
✖️ NG例:
<uses-permission android:name="android.permission.READ_CONTACTS" />
→ 使っていないのに付けっぱなし。診断で即バレます。
✔ 対策:
- 最小権限の原則(Principle of Least Privilege)
- 本当に必要なときだけ
runtime permissionでユーザーに明示的に許可を求める
✅ 2. ログ出力はリリース時に全て消す
✖️ NG例:
Log.d("Login", "userId=" + userId + ", token=" + token);
→ 本番環境でこれが出ていたら致命的です。
✔ 対策:
BuildConfig.DEBUGを活用して、ログ出力をビルドタイプで制御- ProGuardルールで
Log.*を削除
✅ 3. WebViewにおける安全対策
✖️ NG例:
webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new JsInterface(), "Android");
→ JavaScriptインターフェースが攻撃対象になる
✔ 対策:
- 必要な画面にのみ限定的にJavaScriptを有効化
addJavascriptInterface()は基本的に使わないsetAllowFileAccess(false)などの設定も見直す
この続きはcodocで購入