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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月19日 03时01分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
[Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息
2019-04-27
在 Centos7 下使用 Docker 快速搭建 Hadoop 集群
2019-04-27
Python web 框架 Flask 蓝图的正确使用姿势
2019-04-27
领扣LintCode算法问题答案-1053. 至少是其他数字两倍的最大数
2019-04-27
领扣LintCode算法问题答案-1054. 最少费用的爬台阶方法
2019-04-27
领扣LintCode算法问题答案-1056. 请找出大于目标的最小字母
2019-04-27
领扣LintCode算法问题答案-1062. 洪水填充
2019-04-27
领扣LintCode算法问题答案-1068. 寻找数组的中心索引
2019-04-27
领扣LintCode算法问题答案-1071. 词典中最长的单词
2019-04-27
领扣LintCode算法问题答案-1078. 数组的度
2019-04-27
领扣LintCode算法问题答案-1079. 连续子串计数
2019-04-27
领扣LintCode算法问题答案-1080. 最大的岛
2019-04-27
【精】LintCode领扣算法问题答案:1082. 员工的重要度
2019-04-27
领扣LintCode算法问题答案-1085. 最长的单一路径
2019-04-27
【精】LintCode领扣算法问题答案:1086. 重复字符串匹配
2019-04-27
SMTP 550错误
2019-04-27
【Hadoop】Hbase1.2.4在hadoop2.7.3中的可执行java代码
2019-04-27
【Hadoop】hive2.1在hadoop2.7.3中的可执行java代码
2019-04-27
[区块链]区块链在健身经济领域的架构设计
2019-04-27