18.4广播的安全性
Android中的广播可以跨进程甚至跨APP直接通信,这样会产生两个问题:1 其它APP可以接收到当前APP发送的广播,导致数据外泄。
2 其它APP可以向当前APP发送广播消息,导致APP被非法控制。
Google官方提供了几种方案,从发送广播和接收广播两个方面增强广播的安全性:
1 发送广播
(1) 发送广播时,增加相应的permission,用于权限验证。
(2) 在Android4.0及以上系统中,发送广播时,可以使用setPackage函数设置接收广播的包名。
(3) 使用局部广播。
2 接收广播
(1) 注册广播接收器时,增加相应的permission,用于权限验证。
(2) 注册广播接收器时,设置android:exported 的值为false。
(3) 使用局部广播。
示例代码如下:
Intentintent = new Intent();
intent.setAction("com.eam.read");
intent.putExtra("data","test");
intent.setPackage("com.ruwant.test");
sendBroadcast(intent, Manifest.permission.SEND_SMS);
当发送广播时,如增加了permission,那接收广播的APP必须申请相应权限,如:

本文探讨了Android广播可能带来的安全问题,包括数据外泄和APP被非法控制。Google建议通过添加权限验证、指定接收包名、使用局部广播等方法提升广播的安全性。发送广播时,可以设置permission并使用setPackage方法;接收广播时,可在注册时添加permission并将android:exported设为false。局部广播也能有效增强安全性。
订阅专栏 解锁全文
1034

被折叠的 条评论
为什么被折叠?



