Android开发组件安全维护
发布日期:2021-10-04 02:53:17 浏览次数:3 分类:技术文章

本文共 1330 字,大约阅读时间需要 4 分钟。

开发的应用一般的拿到专业检测网站去检测一下,就会发现他说你的程序在裸奔,坑爹了。。。

这里记录下关于Activity,Service,BroadCastRecever的基本安全维护。

关于Activity,这里曝露在外面,第三方应用也可以访问页面进行操作,这里检测网站会提示“导致敏感信息泄露或者恶意攻击者精心构造攻击载荷达到攻击的目的”。好了,也就是说这项检查不合格了

解决方案:

1:给每个加上android:exported=”false” ,这个的意思是该页面组件只能是自己的应用程序才能访问,第三方应用不能访问,当然这个不能写在主页面。
2:给每个页面加上自定义权限。
<Activity name="" android:permission=""></Activity>
3:给Activity的启动模式最好就是系统默认的别改动。


关于Service的安全问题,其实都可以使用exported来管理。

解决方案:
1:服务不然其他应用程序访问,android:exported=”false”
2:添加自定义权限,步骤如下:
2-1:权限声明“`
2-2:声明该应用程序使用该权限
2-3:给Service加上访问权限
2-4:在Service中判断
if(checkCallingOrSelfPermission(permission)!=
PackageManager.PERMISSION_DENIED){
logi(tag,”验证通过”);
}

>3:在Service中判断启动给服务的包名是谁,不是本应用包名则不响应。>获取启动服务包名:>String pkname=intent.getComponent().getPackageName();---- >关于BoradCastRecever的安全问题。> 解决方案:> 1:给广播加上只能本应用访问,其他应用发出的广播我们不接受(android:exported="false")。> 2:和上面一样的加上权限。> 3:当然也可以使用LocalBroadcastManager这里广播类来管理> 使用如下:

LocalBroadcastManager mLocalBroadcastManager;

BroadcastReceiver mReceiver;
IntentFilter filter = new IntentFilter();
filter.addAction(“test”);
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(“test”)) {
//Do Something
}
}
};
mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
mLocalBroadcastManager.registerReceiver(mReceiver, filter);
“`

转载地址:https://blog.csdn.net/leifengpeng/article/details/46516543 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android中的Activity常见样式
下一篇:android中实现View的振动

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月19日 03时01分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章