" android:label="@string/app_name" android:exported="false" /> 意图过滤器不应该设置在仅用于单个应用的活动中。...由于意图过滤器的特性,以及工作原理,即使您打算向内部的私有活动发送意图,但如果通过意图过滤器发送,则可能会无意中启动另一个活动。...任务名称由根活动所具有的 Affinity 决定。 另一方面,对于根活动以外的活动,活动所属的任务不仅仅取决于 Affinity,还取决于活动的启动模式。...请参阅“4.1.3.1 组合导出属性和意图过滤器设置(对于活动)” 4.1.2.9 小心并安全地处理来自被请求活动的返回数据(必需) 根据您访问的活动类型,风险略有不同,但在处理作为返回值的收到的Intent...在 Android OS 权限安全模型中,只有已获得适当权限的应用才可以直接访问受保护的素材。 但是,存在一个漏洞,因为具有素材权限的应用可以充当代理,并允许非特权应用程序访问它。
" android:exported="false"/> 另外,这种情况很少见,但是当服务仅在应用中使用时,不要设置意图过滤器。...4.4.2.6 如果目标是固定的,使用显式意图(必需) 当通过隐式意图使用服务时,如果意图过滤器的定义相同,则意图会发送到首先之前的服务。...如果之前安装了恶意软件,它故意定义了同一个意图过滤器,则意图会发送到恶意软件并发生信息泄露。 另一方面,当通过显式意图使用服务时,只有预期的服务会收到意图,所以这样更安全。...还有一些要考虑的要点,请参阅“4.1.2.8 如果目标活动是预定义的,则使用显式意图(必需)”。...在 Android OS 权限安全模型中,只有已被授予适当权限的应用,才能直接访问受保护的素材。 但是,存在一个漏洞,因为具有素材权限的应用可以充当代理,并允许非特权应用访问。
众所周知,Android平台的记账软件众多,但大多数都冗余着广告,复杂,VIP等等,因为公司都要生存,而小而美的APP为了活下来,也逐渐会向这方面发展。...也许只有个人开发者才会去写简洁,高效的记账APP吧。 为什么要写这样一个APP? 得益于女朋友的碎碎念,于是决定将毕设方向转向 记账 方向。...宁小记,一个简洁高效的Android记账APP(仿钱迹),开源地址 这里首先感谢 钱迹 开发者—首富的气质(唐哥),钱迹 是我见过Android平台为数不多简洁实用高效的记账软件,目前是独立开发。...字体图标瘦身方案 Navigation返回键,页面跳转时导致的oncreView优化,多页面跳转优化 基于RxJava的异步数据封装 Android P生物识别适配 业务基础开发库,CloudMVP,...更多的小工具,细节处理,请翻阅核心model。 最后 因为能力的原因,代码中可能会有冗余,某些变量名不规范的情况,请理解。
每个 Android 应用由四个组件类型的几个组件组成:活动(Activity),服务(Service),广播接收器(Boardcast Reciver)和内容供应器(Content Provider)...将应用分离为组件有助于应用的一部分在应用之间重用。 活动。 活动是用户界面的元素之一。 一般来说,一个活动通常代表一个界面。 服务。 服务是 Android 中的后台工作装置。...内容供应器由来自内容解析器的请求调用。所有其他组件类型通过Intent(意图)激活。 意图是 Android 中基于Binder框架的特殊通信手段。意图被传递给执行组件调用的方法。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图的适当组件。意图过滤器定义了组件可以处理的意图的“模板"。当然,相同的应用可以定义一个意图过滤器,它将处理来自其他组件的意图。...来源:Yury Zhauniarovich | Publications 推荐 Andrroid系统架构安全篇 Android Linux 内核层安全 用户空间层安全 框架层安全 开发者技术前线 END
4.0 4.1.3.1 组合导出属性和意图过滤器(对于活动) 我们已经解释了如何实现本指南中的四类活动:私有活动,公共活动,伙伴活动和内部活动。...导出属性的值 True 意图过滤器已定义 公开 意图过滤器未定义 公开、伙伴、内部 表 4.1-2 当未指定Activity的导出属性时,Activity是否为公开的,取决于Activity的意图过滤器的存在与否...如果定义了任何意图过滤器,则该活动是公开的;否则它是私有的。...不应该使用未定义的意图过滤器和导出属性false的原因,是 Android 的行为存在漏洞,并且由于意图过滤器的工作原理,其他应用的活动可能会意外调用它。下面的两个图展示了这个解释。...图 4.1-4 是一个正常行为的例子,其中私有活动(应用 A)只能由同一个应用的隐式Intent调用。 意图过滤器(action ="X")被定义为仅在应用 A 内部工作,所以这是预期的行为。
但是,在我们的开发环境的/apk文件夹中,我们可以找到各种架构的预构建应用捆绑包(.apk文件)。 选择名称与您的 Android 设备架构匹配的.apk文件。...getIntent方法仅获得首先用于启动当前活动的Intent。 因此,此Intent适用于重新创建活动。 我们将在本章后面的“在LabActivity中删除,编辑和共享照片”一节中全面讨论意图。...如果以前在将子活动推入栈时禁用了,则可以这样做。 至此,我们的活动具有必要的代码来设置摄像机视图并获取有关设备摄像机的数据。...确认后,删除 PNG 文件并完成活动。 编辑:显示一个意图选择器,以便用户可以选择一个应用来编辑 PNG 文件。 (以EDIT意图传递 URI。)...意图是活动相互交流的手段。 一个活动从其父(创建该活动的活动)接收意图,并在其完成时从其子(创建的活动)接收意图。 通信活动可能在不同的应用中。 一个意图可能包含称为extras的键值对。
每个 Android 应用由四个组件类型的几个组件组成:活动(Activity),服务(Service),广播接收器(Boardcast Reciver)和内容供应器(Content Provider)...将应用分离为组件有助于应用的一部分在应用之间重用。 活动。 活动是用户界面的元素之一。 一般来说,一个活动通常代表一个界面。 服务。 服务是 Android 中的后台工作装置。 服务可以无限期运行。...内容供应器由来自内容解析器的请求调用。所有其他组件类型通过Intent(意图)激活。 意图是 Android 中基于Binder框架的特殊通信手段。意图被传递给执行组件调用的方法。...被调用的组件可以被两种不同类型的意图调用。为了显示这些类型的差异,让我们考虑一个例子。例如,用户想要在应用中选择图片。应用的开发人员可以使用显式意图或隐式意图来调用选择图片的组件。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图的适当组件。意图过滤器定义了组件可以处理的意图的“模板”。当然,相同的应用可以定义一个意图过滤器,它将处理来自其他组件的意图。
那些想要处理被扫描到的NFC标签的应用程序可以声明一个意图过滤器(declare an intent filter ),并要求处理这些数据。...活动> ACTION_TECH_DISCOVERED:如果没有活动注册处理ACTION_NDEF_DISCOVERED intent,标签分发系统尝试用这个意图启动应用程序...因此,Android4.0或更高版本的设备下,如果使用的AAR,下面的意图过滤器不是技术上必须的: android:name="android.nfc.action.NDEF_DISCOVERED...vnd.com.example.android.beam"/> 有了这个意图过滤器,现在当它扫描一个NFC标签,或接收到一个AAR的类型com.example.android.beam...即使AARS保证了应用程序被启动或下载,仍然建议使用意图过滤器。因为它可以让你启动您选择的应用程序中的Activity,而不是总是启动一个AAR指定的包内的主Activity。
表 4.4-3 导出属性的值 True False 意图过滤器已定义 公共 (不使用) 意图过滤器未定义 公共,伙伴,内部 私有 如果服务中的导出属性是未指定的,服务是否公开由是否定义了意图过滤器决定...不应该使用未定义的意图过滤器和导出属性false的原因是,Android 的行为存在漏洞,并且由于意图过滤器的工作原理,可能会意外调用其他应用的服务。...具体而言,Android 的行为如下,因此在设计应用时需要仔细考虑。 当多个服务定义了相同的意图过滤器内容时,更早安装的应用中的服务是优先的。...就安全性而言,这里存在一个问题,应用 A 尝试通过发送隐式意图来,调用应用中的私有服务,但实际上调用了之前安装的应用 B 中的公共活动(B-1)。...另外,由于过程要进行排队,因此它具有“线程安全”的特性。每个过程不可能并行,但根据产品的要求,它也可以作为选项来选择,来简化实现。
= “vnd.android.cursor.item / vnd.google.note ” /> 意图过滤器> android.intent.action.GET_CONTENT...android.intent.category.DEFAULT 该过滤器描述了向用户返回由用户选择的笔记的能力,而不需要知道其来自何处。...鉴于这些功能,以下意图将解析为NotesList活动: {action = android.app.action.MAIN}匹配所有可用作应用程序顶级入口点的活动。...= “vnd.android.cursor.dir / vnd.google.note ” /> 意图过滤器> android.intent.action.INSERT android.intent.category.DEFAULT...INT FLAG_RECEIVER_FOREGROUND 如果设置,在发送广播时,允许接收者以前台优先级运行,具有较短的超时间隔。
DeepLink漏洞 0x00 DeepLink简介 Deep link是一种处理特定类型链接并直接发送到应用程序(例如特定活动)的机制。...通过添加intent-filters来设置深层链接,并根据从传入意图中提取的数据将用户引导至正确的活动。因此,多个应用程序能够处理相同的深层链接(Intent)。...Android 应用程序链接是通过添加使用 URL 打开应用程序内容的意图过滤器并验证是否允许应用程序打开这些网站 URL 来设置的。...验证需要执行以下步骤:http/https 请求清单中的自动应用程序链接验证。这向 Android 系统发出信号,表明它应该验证应用程序是否属于意图过滤器中使用的 URL 域。...通过在以下位置托管数字资产链接JSON 文件来声明网站和意图过滤器之间的关系:https://domain.name/.well-known/assetlinks.json 如果系统成功验证允许应用程序打开某个
此外,实例可以是多个任务的成员,也可以是一个任务中的多个实例。 否。在发起意图的同一任务中打开 是 singleTop 否 与标准完全相同,但如果活动位于Task堆栈的顶部,则使用现有实例。 否。...在发起意图的同一任务中打开 是 singleTask 否 单实例 是。只要设置其他任务栈就是根任务。 是 singleInstance 否 单实例 是。总是根任务。 决不允许。...然后将父活动指定为android.support.PARENT_ACTIVITY的值,与android:parentActivityName属性匹配。...它的提出方式取决于父活动是否能够处理onNewIntent()调用: 如果父活动的启动模式,或者向上的意图包含FLAG_ACTIVITY_CLEAR_TOP,则父活动将被带到堆栈顶部...如果父活动具有启动模式,并且向上意图不包含FLAG_ACTIVITY_CLEAR_TOP,则从堆栈弹出父活动,并在堆栈顶部创建该活动的新实例以接收意图。
4.0 4.2.3.1 结合导出属性和意图过滤器设置(用于接收器) 表 4.2-3 展示了实现接收器时,导出设置和意图过滤器元素的允许的组合。...表 4.2-3 可用与否,导出属性和意图过滤器元素的组合 导出属性的值 True False 意图过滤器已定义 OK 不使用 意图过滤器未定义 OK OK 未指定接收器的导出属性时,接收器是否为公共的...,取决于该接收器的意图过滤器的存在与否 [6]。...[6] 如果意图过滤器已定义,接收器是公共的,否则是私有的。...当应用 A 广播隐式意图时,不仅是相同应用中的私有接收器,而且具有相同意图过滤器定义的公共接收器(B-1)也可以接收意图。 (图中的红色箭头标记)。
隐式意图和显式意图: 显式意图:显式意图明确指明了启动活动的上下文和想要启动的目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。...Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。...可以配置多个意图过滤器,只要能够完整的匹配任何一个意图过滤器intent-filter,就可以跳转到那个activity 如果intent-filter里面只有和标签...activity回传数据给第一个activity 实验要求:编程实现具有“登录”按钮的主界面,点击“登录”按钮后打开另一个新的Activity,在新打开的Activity中输入的用户名、密码等个人信息,...参数 intent Intent:开始的意图。 requestCode int:如果>=0,则当活动退出时,此代码将在onActivityResult()中返回。
前言 小伙伴们,在前面的一系列文章中我们分别介绍了Android视图控件、Android布局、Android四大组件,本文我们单独介绍一下Android中一个非常重要的内容Intent的使用。...一 Intent基本介绍 Intent是Android中的一个基本组件,用于在应用内的不同组件(如活动、服务和广播接收器)之间进行通信和交互。...主要特点和作用: 启动活动:通过创建一个具有适当Action和可选Data的Intent对象,可以启动目标活动并实现页面之间的跳转。...隐式启动:除了显式地指定目标组件的类名,还可以使用隐式意图根据指定的Action、Data和Category来自动选择最合适的组件。...过滤器等。
这个功能被称为“可浏览的意图”。 通过在清单文件中指定 URI 模式,应用将响应具有其 URI 模式的链接转移(用户点击等),并且应用以链接作为参数启动。...可以假设的是,它们滥用应用功能,通过准备一个恶意网站,它的链接的 URL 具有不正确的参数,或者它们通过欺骗智能手机用户安装恶意软件,它包含相同的 URI 模式,来获取包含在 URL 中的信息。...使用“可浏览的意图”来对付这些风险时有一些要注意的地方。 4.7.1 示例代码 使用“可浏览的意图”的应用的示例代码如下: 要点: 1) (网页侧)不得包含敏感信息。...获取),并且带有相应意图过滤器的应用,从 Android 系统启动。...此时,当几个应用设置意图过滤器来接收相同的 URI 模式时,应用选择对话框将显示,与隐式意图正常启动相同,并启动用户选择的应用。
仅在同一应用内使用的接收器,不应设计为设置意图过滤器。 由于意图过滤器的特性,即使通过意图过滤器调用同一应用中的私有接收器,其他应用的公共私有也可能被意外调用。..." /> 请参阅“4.2.3.1 导出属性和意图过滤器设置的组合(对于接收器)”。...所以不要认为收到的意图在没有任何验证的情况下,是完全安全的。 内部广播接收机具有一定程度的风险,因此还需要验证接收意图的安全性。 请参考“3.2 小心和安全地处理输入数据”。...由于在预设情况下,粘性广播被隐式意图使用。 具有指定receiverPermission参数的广播无法发送。...然而,其他应用接收的数据可能会间接作为结果数据转发。 因此,如果没有任何验证,结果数据不应该被认为是安全的。 当发送方(源)广播接收器是内部广播接收器时,它具有一定程度的风险。
zuul启动与自定义过滤器(实现访问记录)示意图 三、通用模块(统一响应与统一异常) 统一响应(对象)示意图 统一响应示意图 统一异常(对象)示意图 通用索引表 ---- 这不是一个完整的广告系统,主要涉及两方面...一个单节点的eureka服务,为整个微服务提供服务注册与发现,尽量不要用单节点的,稳定性不够高,要是这个节点崩了,整个微服务就用不了,建议使用多节点。...在微服务架构中, 后端服务往往不直接开放给调用端, 而是通过一个服务网关 根据请求的 url, 路由到相应的服务, 即实现请求转发。...自定义过滤器(实现访问记录),继承ZuulFilter类: 1.实现过滤器 路由前后顺序、 2.此过滤器选择路由后的执行顺序 、 3.此过滤器是否执行、 4.要执行的方法 这里用到(RequestContext.getCurrentContext...统一的异常处理,不直接展示错误,对用户友好 ; 异常分类,便于排查问题,debug ; 降低业务代码中对异常处理的耦合。 统一响应(对象)示意图 ? 统一响应示意图 ? 统一异常(对象)示意图 ?
Intent 过滤器中控制应用在列表中的位置 2.安全问题 滥用Activity返回值 如果受害应用使用startActivityForResult(),攻击应用使用setResult()将数据传输到受害者应用的...这可用于创建一个代理组件(活动、广播接收器或服务),该组件采用嵌入式意图并将其传递给危险方法,如startActivity()或 sendBroadcast()因此,可以强制应用启动无法直接从其他应用启动的未导出组件...例如,假设应用具有执行某些不安全操作的未导出活动以及用作代理的导出活动: AndroidManifest.xml android:name=".ProxyActivity" android...就其本身而言,启动隐藏组件不会产生太大的安全影响,并且需要滥用隐藏组件的功能: 旁路保护 开发人员可以实现对收到的意图的过滤和显式设置组件以处理意图 为null: intent.setComponent...但是,开发人员可以将选择器显式设置为 null: intent.setComponent(null); intent.setSelector(null); 即便如此,您也可以创建一个隐式意图来匹配 某些未导出活动的
领取专属 10元无门槛券
手把手带您无忧上云