设为首页 加入收藏

TOP

Android应用安全——组件通信安全(Intent)
2014-11-24 01:09:17 来源: 作者: 【 】 浏览:3
Tags:Android 应用 安全 组件 通信 Intent

一、Intent基础知识


Intent启动不同组件的方法如下:


Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者;


另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收


者是谁,有利于降低发送者和接收者之间的耦合。


显示调用例子:


Intent intent = new Intent();
intent.setClassName( "com.samples.intent.simple" ,
"com.samples.intent.simple.TestActivity" );
startActivity(intent);


Intent intent = new Intent(A.activity,B.class);
startActivity(intent);


隐式调用例子


Intent intent = new Intent(Intent. ACTION_DIAL );
startActivity(intent);
Intent intent = new Intent("com.test.broadcast");
intent.putString("PASSWORD","123456");
sendBroadcast(intent);
Intent intent = new Intent("com.test.service");
intent.putString("USERNAME","test");
startService(intent);


显示调用和隐式调用都能过在不同应用间传递数据。


二、可能产生的风险:


1、恶意调用


2、恶意接受数据


3、仿冒应用,例如(恶意钓鱼,启动登录界面)


4、恶意发送广播、启动应用服务。


5、调用组件,接受组件返回的数据


6、拦截有序广播


上面也是想到了一部分,应用中应该会有更多的例子。


三、怎样避归风险:


1、最小化组件暴露


不参与跨应用调用的组件添加android:exported="false"属性,这个属性说明它是私有的,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。


android:name=".LoginActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:exported="false">


2、设置组件访问权限


参与跨应用调用的组件或者公开的广播、服务设置权限。设置权限如下:


(1)组件添加android:permission属性。


android:permission="com.test.custempermission">




(2)声明< permission>属性


android:label="test"
android:name="com.test.custempermission"
android:protectionLevel="normal">


protectionLevel有四种级别normal、dangerous、signature、signatureOrSystem。signature、signatureOrSystem时,只有相同签名时才能调用。


(3)调用组件者声明



3、暴露组件的代码检查


Android 提供各种 API 来在运行时检查、执行、授予和撤销权限。这些 API是 android.content.Context 类的一部分,这个类提供有关应用程序环境的全局信息。


if (context.checkCallingOrSelfPermission("com.test.custempermission")
!= PackageManager.PERMISSION_GRANTED) {
// The Application requires permission to access the
// Internet");
} else {
// OK to access the Internet
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android应用安全——(数据抓包).. 下一篇Android应用安全——数据安全

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: