Android常见安全风险点之Intent风险

隐式intent没有明确指明哪些接收方有权限接收,恶意程序指定action标识后,可以获取intent内容,导致数据泄露,intent劫持,仿冒,钓鱼应用等风险。

使用Intent.setPackage、Intent.setComponent、Intent.setClassName、Intent.setClass、new Intent(context,Receivered.class)中任一种方法明确指定目标接收方,显式调用intent。

如:Intent.setAction(getPackageName() + ".download.handler_service")

相关推荐:
该风险可能产生恶意发送广播,拦截有序广播。 如果它们只被同一个软件中的代码调用,将broadcast属性改为android:exported="false",如果组件需要对外暴露,应该通过自定义权限限制对它的调用。
使用SecureRandom时不要使用SecureRandom (byte[] seed)这个构造函数,会造成生成的随机数不随机。 建议通过/dev/urandom或者/dev/random获取的熵值来初始化伪随机数生成器PRNG。
由于应用开发者没有对传入的数据做异常判断,恶意应用可以通过传入畸形数据,例如向getXXXExtra()传入自定义的序列化类对象,会导致应用本地拒绝服务。 对getextra方法加上try catch 捕获异常,防止应用拒绝服务。
找不到activity类: android.content.ActivityNotFoundException: Unable to find explicit activity class {xxxx} 在AndroidMainifest.xml中增加activity的申明,如: <activity android:name=".x …
忘记加载activity的layout文件:setContentView(R.layout.main);
拿起手机扫一扫即可带走我!