android静态安全检测_四大组件activity

问题描述:

今天项目进行静态安全检测,报了一个"Activity组件暴露风险"的问题,这个问题引起的原因是给其中的一个activity设置了 android:exported="true" ,但是我有多个app,而且之前存在相互调用。

分析:

我们先来看看 android:exported="false|true" 这个属性:

     1. 完全暴露,这就是android:exported=”true”的作用,而一旦设置了intentFilter之后,exported就默认被设置为true了,除非再强制设为false。当然,
     对那些没有intentFilter的程序体,它的exported属性默认仍然是false,也就不能共享出去。

     2. 权限提示暴露,这就是为什么经常要设置usePermission的原因,如果人家设置了android:permission=”xxx.xxx.xx”那么,你就必须在你的application
     的Manufest中usepermission xxx.xxx.xx才能访问人家的东西。

     3. 私有暴露,假如说一个公司做了两个产品,只想这两个产品之间可互相调用,那么这个时候就必须使用shareUserID将两个软件的Uid强制设置为一样的。
     这种情况下必须使用具有该公司签名的签名文档才能,如果使用一个系统自带软件的ShareUID,例如Contact,那么无须第三方签名。

解决办法:

1. 先将对应的activity的属性设置为 android:exported="false"

2. 在每个app的xml配置文件里面添加 android:sharedUserId="XXX"

3. 用同一个签名文件对公司的所有app进行打包



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值