北京大型网站建设公司/石家庄seo代理商
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必须申请相应权限,如:
<uses-permissionandroid:name="android.permission.SEND_SMS"