Android静态安全检测 - 自定义权限的保护级别

2024-08-29 03:08

本文主要是介绍Android静态安全检测 - 自定义权限的保护级别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自定义权限的保护级别 - protectionLevel属性


一、Manifest文件中权限相关的知识


1. <uses-permission>标签


【1】语法定义


【2】属性

 android:name    可以是系统的权限名称,也可以是其他APP通过<permission>标签声明的权限名称(用于两个应用之间的交互)

 android:maxSdkVersion   标注该权限所支持的最大API版本号


2. <permission>标签


【1】语法定义


【2】属性

  android:name  自定义的权限名称

  android:label   对权限的简短描述

  android:icon   用来标识权限的图标

  android:description   对权限的更加详细的描述

  android:permissionGroup   权限所属权限组的名称

  android:protectionLevel     权限的保护等级

     - normal

       属性的默认值,代表低风险权限,只要申请了就可以使用(在AndroidManifest.xml中添加<uses-permission>标签),安装时不需要用户确认

     - dangerous

       高风险权限,安装时需要用户的确认才可使用

     - signature

       只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授给它

     - signatureOrSystem

        签名相同,或者申请权限的应用为系统应用(在system image中),与signature类似,只是增加了rom中自带的app的声明 ,尽量不要使用该选项,因为signature已经适合绝大部分的情况


【3】参考链接


http://blog.csdn.net/self_study/article/details/50074781


3. <uses-permission><permission>的区别


【1】<uses-permission>

  系统权限或者其他APP通过<permission>声明的权限

  调用别人东西的时候,自己需要声明的权限


【2】<permission>

  自定义权限

  别人调用这个程序时,需要用<uses-permission>来声明


【3】示例

  应用A的Manifest文件中声明权限,并注册Broadcast Receiver



应用B发送消息给A,需要在B的Manifest文件中声明使用相应的权限,A才能收到


【4】参考链接


http://blog.csdn.net/lilu_leo/article/details/6940941


http://www.cnblogs.com/lwbqqyumidi/p/3793440.html


4. <permission-tree>标签


【1】语法定义


5. <permission-group>标签


【1】语法定义


6. 参考链接


https://developer.android.com/guide/topics/manifest/permission-element.html


http://blog.csdn.net/self_study/article/details/50074781


二、触发条件


1. 定位AndroidManifest.xml文件中的自定义权限


【1】对应的特征:<permission


2. protectionLevel属性设置为normal


【1】显示设置android:protectionLevel="normal"


【2】默认情况下,属性的值也为normal


三、漏洞原理


【1】自定义权限的保护等级(android:protectionLevel属性)设置为normal,或没有显示设置(默认情况也为normal),可能会导致敏感信息泄露


四、修复建议


【1】建议将自定义权限的保护级别设置为signature或者signatureOrSystem

这篇关于Android静态安全检测 - 自定义权限的保护级别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116667

相关文章

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(