公开/封闭属性android:exported引出的Android系统安全技术

简介: 公开/封闭属性android:exported引出的Android系统安全技术android:exported是Android在AndroidManifest.xml里面配置Activity或其他组件如Service或广播等的基础属性,之所以在这里挑出来单独说,是因为该属性现在经常被一些粗糙的安全漏洞扫描系统错误的理解和使用,形成不正确的分析结论。
公开/封闭属性android:exported引出的Android系统安全技术

android:exported是Android在AndroidManifest.xml里面配置Activity或其他组件如Service或广播等的基础属性,之所以在这里挑出来单独说,是因为该属性现在经常被一些粗糙的安全漏洞扫描系统错误的理解和使用,形成不正确的分析结论。
android:exported属性常用以配置一个Android的Activity之间共享数据或互相唤起,以便作为对外共享数据的基础配置之一(之所以说之一,后面还要再说其他共享属性配置),其默认值是false(封闭)。注意!这里所说的默认值是false,是说如果当前Activity没有配置任何<intent-filter>过滤器时候,android:exported才为false,如果当前Activity配置了过滤器<intent-filter>,那么android:exported的默认值是true。这里面还有一个细节问题,是关于不同Android SDK版本也有所不同,在低于SDK 16时候,默认是true,高于SDK 16则默认是false。
android:exported的属性值true或false决定当前App是否对外暴露供其他App程序分享数据,是否可以被手机上安装的其他App唤起。假设手机上安装两个App:A和B。A如果想启动B中的一个ActivityB,那么ActivityB必须配置成android:exported为true才可以。当配置android:exported为true时候,意味着自身App接收来自于手机上的其他App的消息事件,开放状态。
android:exported的属性需要考虑到具体的场景,该属性常被一些大厂使用,比如像腾讯旗下有不少在行业具有极高市场占有率的App,通常用户在安装QQ时候,也会安装微信,也许还会安装腾讯视频,像这样的情况,腾讯可以配置自己App中某些公共Service或者Activity的android:exported为true,然后若干Activity被自家其他App识别并唤起。更何况,要想使用腾讯的一些社交分享组件如分享到微信,分享到朋友圈,分享到QQ这些,就必须配置android:exported为true了。
还是回到两个App:A与B,事实上即便B中ActivityB配置了android:exported为true。A仍然达不到与B共享数据的目的(或A唤起B中ActivityB的目的)。就像前面说的android:exported=”true”只是开始,若想真正实现A与B共享数据,还必须同时设置android:sharedUserId。
当一个App安装到手机上,它就有一个唯一的android:sharedUserId,这个android:sharedUserId伴随App从安装到卸载整个周期。同样的一个App安装到不同的手机上,会具有不同的android:sharedUserId。android:sharedUserId对应的是底层Linux的一个用户。具有相同android:sharedUserId的App可以配置成运行在Linux相同的进程空间中(配置相同android:process)。反之,不具备相同android:sharedUserId的App们,Linux禁止它们互相访问数据。
android:sharedUserId像一个人的身份证一样标识不同的App,如果不同的App像共享数据,在Linux里面,就必须具备android:sharedUserId才可以,做到这一点儿需要两个App在各自的AndroidManifest.xml配置相同的android:sharedUserId。但是一旦两个App设置相同的android:sharedUserId,那么android:exported的属性配置全部失效变得没有意义,从这里可以看到,决定是否共享的重要属性是android:sharedUserId。
而现在一些安全漏洞扫描软件,通过简陋的读取AndroidManifest.xml中定义的Android组件,错误的分析认为没有配置android:exported就是漏洞,殊不知首先需要分析该组件是否配置了过滤器<intent-filter>,如果没有配置<intent-filter>,那么android:exported本身就是false。真正需要配置的当组件配置了<intent-filter>过滤器,此时就要认真配置android:exported这儿,如果打算公开出去,那么就配置为true(其实也不必,因为有了过滤器后,默认就是true),否则false。
相关文章
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
525 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
12月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
339 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
11月前
|
监控 安全 网络安全
软考软件测评师——系统安全设计(防火墙技术)
本文详细解析了防火墙技术的核心概念与功能特性,涵盖网络安全基础防护体系、实时风险预警、流量监控及网络结构隐匿等内容。同时探讨了入侵检测系统(IDS)和网关级病毒防护的技术联动,以及DMZ安全区规划等网络架构设计要点。文章还分析了防火墙的局限性,如无法识别新型病毒变种和替代漏洞扫描工具等问题,并通过历年真题深入解读防火墙的功能特性与测试规范,为网络安全实践提供全面指导。
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术深度对比
【10月更文挑战第18天】 在智能手机操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两种系统的技术特点、优势以及它们之间的主要差异,帮助读者更好地理解这两个平台的独特之处。
655 0
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
571 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
存储 编解码 开发工具
Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现
本文详细探讨了在Android平台上实现HTTP-FLV播放器的过程。首先介绍了FLV格式的基础,包括文件头和标签结构。接着分析了HTTP-FLV传输原理,通过分块传输实现流畅播放。然后重点讲解了播放器的实现步骤,涵盖网络请求、数据解析、音视频解码与渲染,以及播放控制功能的设计。文章还讨论了性能优化和网络异常处理的方法,并总结了HTTP-FLV播放器的技术价值,尤其是在特定场景下的应用意义。
739 11
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
635 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
安全 Android开发 iOS开发
escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
escrcpy 是一款基于 Scrcpy 的开源项目,使用 Electron 构建,提供图形化界面来显示和控制 Android 设备。它支持 USB 和 Wi-Fi 连接,帧率可达 30-120fps,延迟低至 35-70ms,启动迅速且画质清晰。escrcpy 拥有丰富的功能,包括自动化任务、多设备管理、反向网络共享、批量操作等,无需注册账号或广告干扰。适用于游戏直播、办公协作和教育演示等多种场景,是一款轻量级、高性能的 Android 控制工具。
1413 1
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
1026 21