Android研发安全1-Activity组件安全(上)

本文探讨了Android Activity组件的安全问题,重点关注访问权限控制。介绍了Activity的分类、Intent的工作原理、android:exported和android:protectionLevel属性的使用。并列举了乌云网的漏洞实例,提出预防措施,包括设置private activity、谨慎处理Intent、设置组件访问权限等。
摘要由CSDN通过智能技术生成

       Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点:
- Activity访问权限的控制
- Activity被劫持

本篇文章将分享Activity访问权限控制方面的安全问题,首先科普下基础知识

研发基础知识

Activity分类

       Activity类型和使用方式决定了其风险和防御方式,故将Activity分类如下: Private、Public、Parter、In-house

这里写图片描述

Intent简介

       Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在SDK中给出了Intent作用的表现形式为:

  • 通过Context.startActivity() orActivity.startActivityForResult()
    启动一个Activity;
  • 通过 Context.startService() 启动一个服务,或者通过Context.bindService() 和后台服务交互;
  • 通过广播方法(比如 Context.sendBroadcast(),Context.sendOrderedBroadcast(),
    Context.sendStickyBroadcast()) 发给broadcast receivers。

    Intent可分为隐式(implicitly)和显式(explicitly)两种:

(1)显式 Intent

       即在构造Intent对象时就指定接收者,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的,如下:

Intent intent = new Intent(MainActivit.this, NewActivity.class);
startActivity(intent );  

上面那个intent中,直接指明了接收者:NewActivity

(2)隐式 Intent

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值