风险场景
-
SharedPreferences未加密存储敏感数据。
-
Activity/BroadcastReceiver未设权限被恶意调用。
加固方案
-
数据加密存储
val masterKey = MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build() val prefs = EncryptedSharedPreferences.create( context, "secret_prefs", masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) prefs.edit().putString("password", "123456").apply()
-
组件权限控制
-
<activity android:name=".PaymentActivity" android:exported="false" android:permission="com.example.PAYMENT_PERMISSION"/>