首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

图 4.2-4 是一个正常行为的例子,隐式意图只能在同一个应用中调用私有接收器(应用 A)。 意图过滤器(在图中,action ="X")仅在应用 A 中定义,所以这是预期的行为。...图 4.2-5 是个例子,应用 B 和应用 A 中都定义了意图过滤器(见图中的action ="X")的。首先,当另一个应用(应用 C)通过 隐式意图发送广播,它们不被私有接收器(A-1)接收。...所以不会有任何安全问题。 (请参阅图中的橙色箭头标记。)从安全角度来看,问题是应用 A 对同一应用中的私有接收器的调用。...当应用 A 广播隐式意图时,不仅是相同应用中的私有接收器,而且具有相同意图过滤器定义的公共接收器(B-1)也可以接收意图。 (图中的红色箭头标记)。...这是基于这样一个事实,即系统发送的广播意图可以通过exported="false"来接收。 如果其他应用发送的意图的ACTION与系统发送的广播意图相同,则可能会通过接收它而导致意外行为。

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    安卓应用安全指南 4.4.3 创建使用服务高级话题

    不应该使用未定义的意图过滤器和导出属性false的原因是,Android 的行为存在漏洞,并且由于意图过滤器的工作原理,可能会意外调用其他应用的服务。...具体而言,Android 的行为如下,因此在设计应用时需要仔细考虑。 当多个服务定义了相同的意图过滤器内容时,更早安装的应用中的服务是优先的。...图 4.4-4 是一个正常行为的例子,私有服务(应用 A)只能由同一个应用通过隐式意图调用。 因为只有应用 A 定义了意图过滤器(图中的action ="X"),所以它的行为正常。 这是正常的行为。...在这种情况下,当应用 C 发送隐式意图时,私有服务(A-1)调用失败。 另一方面,由于应用 A 可以通过隐式意图,按照预期成功调用应用内的私有服务,因此在安全性(恶意软件的对策)方面不会有任何问题。...就安全性而言,这里存在一个问题,应用 A 尝试通过发送隐式意图来,调用应用中的私有服务,但实际上调用了之前安装的应用 B 中的公共活动(B-1)。

    97120

    安卓应用安全指南 4.4.2 创建使用服务 规则书

    " android:exported="false"/> 另外,这种情况很少见,但是当服务仅在应用中使用时,不要设置意图过滤器。...原因是,由于意图过滤器的特性,可能会意外调用其他应用中的公共服务,虽然你打算调用应用内的私有服务。 AndroidManifest.xml(不推荐) 的数据(必需) 与“活动”相同,如果是“服务”,则在处理收到的意图数据时,你应该做的第一件事是输入验证。 同样在服务的用户方,有必要验证来自服务的结果信息的安全性。...4.4.2.6 如果目标是固定的,使用显式意图(必需) 当通过隐式意图使用服务时,如果意图过滤器的定义相同,则意图会发送到首先之前的服务。...在与服务交换敏感信息时,你需要考虑信息泄露的风险。 你必须假设,发送到公共服务的意图中的所有数据都可以由恶意第三方获取。 此外,根据实现情况,向伙伴或内部服务发送意图时,也存在各种信息泄露的风险。

    96910

    安卓应用安全指南 4.1.3 创建使用活动 高级话题

    导出属性的值 True 意图过滤器已定义 公开 意图过滤器未定义 公开、伙伴、内部 表 4.1-2 当未指定Activity的导出属性时,Activity是否为公开的,取决于Activity的意图过滤器的存在与否...不应该使用未定义的意图过滤器和导出属性false的原因,是 Android 的行为存在漏洞,并且由于意图过滤器的工作原理,其他应用的活动可能会意外调用它。下面的两个图展示了这个解释。...下面的图 4.1-5 展示了一个场景,其中在应用 B 和应用 A 中定义了相同的意图过滤器(action ="X")。...由于这个漏洞,可能会将敏感信息发送到其他应用,或者应用可能会收到意外的返回值。 如上所示,使用意图过滤器,将隐式意图发送到私有应用,可能会导致意外行为,因此最好避免此设置。...应用验证的方式是,从请求访问的应用获取证书,并将其与白名单中的散列进行比较。

    1.4K20

    安卓应用安全指南 4.1.2 创建使用活动 规则书

    " android:label="@string/app_name" android:exported="false" /> 意图过滤器不应该设置在仅用于单个应用的活动中。...由于意图过滤器的特性,以及工作原理,即使您打算向内部的私有活动发送意图,但如果通过意图过滤器发送,则可能会无意中启动另一个活动。...这是因为,即使通过软件包名称限制目标,恶意应用仍可能伪造与真实应用相同的软件包名称。 为了消除这种风险,有必要考虑使用伙伴或内部活动。...请参阅“4.1.3.1 组合导出属性和意图过滤器设置(对于活动)” 4.1.2.9 小心并安全地处理来自被请求活动的返回数据(必需) 根据您访问的活动类型,风险略有不同,但在处理作为返回值的收到的Intent...基本上这与重新授权相同,因此它被称为“重新授权”问题。 请参阅“5.2.3.4 重新授权问题”。 4.2.12 敏感信息的发送应该尽可能限制(推荐) 您不应将敏感信息发送给不受信任的各方。

    1.3K20

    我所理解的Intent 和Intent-filter

    >创建隐式 Intent 时,Android 系统通过将 Intent 的内容与在设备上其他应用的清单文件中声明的 Intent 过滤器进行比较,从而找到要启动的相应组件。...如果 Intent 与 Intent 过滤器匹配,则系统将启动该组件,并向其传递 Intent 对象。 如果多个 Intent 过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。...[2] Android 系统搜索所有应用中与 Intent 匹配的 Intent 过滤器。...(可能是与Intent使用者在同一个应用内,也可能不再同一应用内),刚好声明了和intent使用者一样的 c).当Intent使用者发起意图的时候,...这个应用中声明有相同信息的组件将对这个意图做出响应。

    1.4K90

    安卓应用安全指南 4.2.2 创建使用广播接收器 规则书

    仅在同一应用内使用的接收器,不应设计为设置意图过滤器。 由于意图过滤器的特性,即使通过意图过滤器调用同一应用中的私有接收器,其他应用的公共私有也可能被意外调用。..." /> 请参阅“4.2.3.1 导出属性和意图过滤器设置的组合(对于接收器)”。...由于公共广播接收器从未指定的大量应用接收意图,它可能会收到恶意软件的攻击意图。 私有广播接收器将永远不会直接从其他应用接收任何意图,但公共组件从其他应用接收的意图数据,可能会转发到私有广播接收器。...4.2.2.9 提供二手素材时,素材应该以相同保护级别提供(必需) 当由权限保护的信息或功能素材被二次提供给其他应用时,有必要通过声明与目标应用相同的权限来维持保护标准。...这实际上与重新授权相同,因为它被称为重新授权问题。 请参阅“5.2.3.4 重新授权问题”。

    84330

    安卓应用安全指南 4.7 使用可浏览的意图

    此外,使用 URI 模式从浏览器启动相应应用的方法不仅支持 Android,也支持 iOS 和其他平台,这通常用于 Web 应用与外部应用之间的链接等。...使用“可浏览的意图”来对付这些风险时有一些要注意的地方。 4.7.1 示例代码 使用“可浏览的意图”的应用的示例代码如下: 要点: 1) (网页侧)不得包含敏感信息。...获取),并且带有相应意图过滤器的应用,从 Android 系统启动。...此时,当几个应用设置意图过滤器来接收相同的 URI 模式时,应用选择对话框将显示,与隐式意图正常启动相同,并启动用户选择的应用。...所以应该考虑,一些规范,例如整个登录过程,在应用端完成。 在设计应用时必须记住它,并且由’可浏览的意图’启动应用,等同于由隐式意图启动,并且不保证启动了有效的应用。

    54510

    《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

    无线定位技术部分主要介绍无线定位的基本原理、定位方法、定位业务、数据采集等相关技术。Android应用开发部分主要介绍移动应用的开发环境、应用开发框架和各种功能组件以及常用的开发工具。...与碎片相关联的活动已经创建完毕以后,调用onActivityCreated()函数。...过滤的方式就是与所有应用程序定义的过滤器(Intent-filter)进行比较,如果Intent和过滤器匹配,就启动组件,并且把Intent告诉这个组件。...答案:Intent解析的匹配规则是: (1)Android系统把所有应用程序包中的Intent过滤器集合在一起,形成一个完整的Intent过滤器列表; (2)在Intent与Intent过滤器进行匹配时...,Android系统会将列表中所有Intent过滤器的“动作”和“类别”与Intent进行匹配; (3)把Intent数据Uri的每个子部与Intent过滤器的标签中的属性进行匹配; (4)如果Intent

    22610

    Android deeplink漏洞

    Android 应用程序链接是通过添加使用 URL 打开应用程序内容的意图过滤器并验证是否允许应用程序打开这些网站 URL 来设置的。...验证需要执行以下步骤:http/https 请求清单中的自动应用程序链接验证。这向 Android 系统发出信号,表明它应该验证应用程序是否属于意图过滤器中使用的 URL 域。...通过在以下位置托管数字资产链接JSON 文件来声明网站和意图过滤器之间的关系:https://domain.name/.well-known/assetlinks.json 如果系统成功验证允许应用程序打开某个...versions Android 6.0 and higher 0x01 安全问题 访问任意组件 应用程序可以实现自己的意图解析器来使用 JSON 对象、字符串或字节数组来处理深度链接,这些对象、字符串或字节数组可以扩展...deep link和app link都可以使用该https方案,开发人员可以为deep link配置意图过滤器。

    78640

    Android 12 适配升级小结

    Android 12 发布已经有好几个月了,而且随着各大市场对应用适配的要求逐渐提高,和尚也尝试将一个历史的应用简单升级适配 Android 12; Android 12 Android 12 对应...Android 12 相对我们的历史项目来说属于较大版本的更新,在适配过程中遇到一系列问题,和尚简单记录整理一下。...若为 “false”,则 Activity 只能由同一应用的组件或使用同一用户 ID 的不同应用启动。 如果您使用的是 Intent 过滤器,则不应将此元素设置为 “false”。...相反,您不应为其设置 Intent 过滤器,以免其他应用调用 Activity; 如果没有 Intent 过滤器,则此元素的默认值为 “false”。...A10: 根据业务设置 PendingIntent 可变性 PendingIntent 是一个可以给另一个应用程序使用的 Intent,PendingIntent 接收待处理意图的应用程序可以使用与产生待处理意图的应用程序相同的权限和身份执行待处理意图中指定的操作

    2.8K20

    Android安全之应用层安全(五)

    内容供应器是为应用提供存储和检索数据的能力的组件。 它还可以与另一应用共享一组数据。 因此,Android 应用由不同的组件组成,没有中央入口点,不像 Java 程序和main方法那样。...内容供应器由来自内容解析器的请求调用。所有其他组件类型通过Intent(意图)激活。 意图是 Android 中基于Binder框架的特殊通信手段。意图被传递给执行组件调用的方法。...被调用的组件可以被两种不同类型的意图调用。为了显示这些类型的差异,让我们考虑一个例子。例如,用户想要在应用中选择图片。应用的开发人员可以使用显式意图或隐式意图来调用选择图片的组件。...对于第一种意图类型,开发人员可以在他的应用的组件中实现挑选功能,并使用带有组件名称数据字段的显式意图调用此组件。当然,开发人员可以调用其他应用的组件,但是在这种情况下,他必须确保该应用安装在系统中。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图的适当组件。意图过滤器定义了组件可以处理的意图的“模板"。当然,相同的应用可以定义一个意图过滤器,它将处理来自其他组件的意图。

    1K20

    浅入浅出 Android 安全:第五章 Android 应用层安全

    内容供应器是为应用提供存储和检索数据的能力的组件。 它还可以与另一应用共享一组数据。 因此,Android 应用由不同的组件组成,没有中央入口点,不像 Java 程序和main方法那样。...内容供应器由来自内容解析器的请求调用。所有其他组件类型通过Intent(意图)激活。 意图是 Android 中基于Binder框架的特殊通信手段。意图被传递给执行组件调用的方法。...被调用的组件可以被两种不同类型的意图调用。为了显示这些类型的差异,让我们考虑一个例子。例如,用户想要在应用中选择图片。应用的开发人员可以使用显式意图或隐式意图来调用选择图片的组件。...对于第一种意图类型,开发人员可以在他的应用的组件中实现挑选功能,并使用带有组件名称数据字段的显式意图调用此组件。当然,开发人员可以调用其他应用的组件,但是在这种情况下,他必须确保该应用安装在系统中。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图的适当组件。意图过滤器定义了组件可以处理的意图的“模板”。当然,相同的应用可以定义一个意图过滤器,它将处理来自其他组件的意图。

    54330

    【Android从零单排系列三十五】《Android四大组件——Activity》

    前言 小伙伴们,在之前的系列文章我们分别介绍了Android视图组件及布局相关的内容,从本文开始我们继续盘点介绍Android开发中另一个比较重要的内容,Android四大组件,第一个 Activity...一 Activity基本介绍 Activity是Android应用程序的一个核心组件,用于提供用户界面和交互。...在Activity中加载布局:在Activity的onCreate()方法中调用setContentView()方法,传入布局文件的资源ID,将布局文件与Activity关联起来。...Intent:Activity接收到的意图对象,包含了启动Activity的相关信息,如数据、标志位等。 Window:代表Activity的窗口,可以用来设置标题栏、背景色等窗口属性。...七 总结 总之,Activity是Android应用程序开发的重要组件,它处理用户界面和交互,并提供了生命周期管理、布局和视图管理、意图启动等核心功能,帮助开发者构建丰富、交互性强的应用程序。

    22710
    领券