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

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

4.0 4.1.3.1 组合导出属性和意图过滤器(对于活动) 我们已经解释了如何实现本指南中的四类活动:私有活动,公共活动,伙伴活动和内部活动。...由于这个漏洞,可能会将敏感信息发送到其他应用,或者应用可能会收到意外的返回值。 如上所示,使用意图过滤器,隐式意图发送到私有应用,可能会导致意外行为,因此最好避免此设置。...使用这个方法有两个限制: 请求应用需要使用startActivityForResult()而不是startActivity()。 请求应用应该只Activity调用。...发送到任务的根Activity的意图,被添加到任务历史中。 根活动是在任务中启动的第一个活动。 任何应用都可以通过使用ActivityManager类,读取添加到任务历史的意图。...例如,当默认活动由启动器启动时,此活动将是根活动。 根据 Android 规范,发送到根Activity的意图的内容可以任意应用中读取。 因此,有必要采取对策,不要将敏感信息发送到活动

1.4K20

Android Intent漏洞

Intent 过滤器中控制应用在列表中的位置 2.安全问题 滥用Activity返回值 如果受害应用使用startActivityForResult(),攻击应用使用setResult()数据传输到受害者应用的...用于获取用户选择的文件(文档、图象、视频)的URI,并在应用中进行处理(例如,文件发送到服务器中),大多Android/Java无法Android ContentResolver返回的InputSteam...数据发送到服务器中。...这可用于创建一个代理组件(活动、广播接收器或服务),该组件采用嵌入式意图并将其传递给危险方法,如startActivity()或 sendBroadcast()因此,可以强制应用启动无法直接其他应用启动的未导出组件...如果应用对某些私有数据使用隐式Intent来启动Activity,则可以开始处理相同的操作来拦截私有数据

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

安卓应用安全指南 4.1.1 创建使用活动 示例代码

在本节中,我们根据活动使用情况,对 4 种活动进行了分类。 你可以通过下面的图表来找出,你应该创建哪种类型的活动。 由于安全编程最佳实践根据活动使用方式而有所不同,因此我们也解释活动的实现。...当使用仅在应用程序中使用活动(私有活动)时,只要你对类使用显示意图,那么你不必担心将它意外发送到任何其他应用程序。 但是,第三方应用程序可能会读取用于启动活动的意图。...因此,如果你敏感信息放入用于启动活动的意图中,有必要采取对策,来确保它不会被恶意第三方读取。 下面展示了如何创建私有活动的示例代码。 要点(创建活动): 1) 不要指定taskAffinity。...要点(使用活动): 4) 不要发送敏感信息。 5) 收到结果时,请仔细并安全地处理数据。...13) 由于目标应用是内部的,所以敏感信息只能由putExtra()发送。 14) 使用显式意图调用内部活动。 15) 即使数据来自内部应用,也要小心并安全地处理接收到的数据

1.6K10

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

4.1.2.1 仅在应用内部使用活动必须设置为私有(必需) 仅在单个应用中使用活动,不需要能够其他应用接收任何意图。...伙伴活动中间有些东西。 如上所述,当活动中返回数据时,您需要注意来自目标应用的信息泄漏。...请参阅“4.1.3.5 使用活动时的日志输出”。 敏感信息发送到活动时,您需要考虑信息泄露的风险。 您必须假设,发送到公共活动的Intent中的所有数据都可以由恶意第三方获取。...此外,根据实现,向伙伴或内部活动发送意图时,也存在各种信息泄漏的风险。 即使数据发送到私有活动,也存在风险,意图中的数据可能通过LogCat泄漏。...例如,启动器启动的活动始终是根活动。 根活动的更多详细信息,请参阅“4.1.3.3 发送到活动的意图”和“4.1.3.4 根活动”。

1.3K20

如何在Ubuntu 14.04上使用Transporter转换后的数据MongoDB同步到Elasticsearch

介绍 Elasticsearch有助于对数据进行全文搜索,而MongoDB则擅长存储数据使用MongoDB存储数据使用Elasticsearch进行搜索是一种常见的体系结构。...本教程向您展示如何使用开源实用程序Transporter通过自定义转换数据MongoDB快速复制到Elasticsearch。...目标 在本文中,我们介绍如何使用Transporter实用程序数据MongoDB复制到Ubuntu 14.04上的Elasticsearch 。...在数据MongoDB同步到Elasticsearch时,您可以在这里看到转换数据的真正力量。 假设我们希望存储在Elasticsearch中的文档有另一个名叫fullName的字段。...结论 现在我们知道如何使用Transporter数据MongoDB复制到Elasticsearch,以及如何在同步时转换应用于我们的数据。您可以以相同的方式应用更复杂的转换。

5.4K01

Android学习笔记,不断更新

Java中的Context上下文 简单理解Context 源码中的Context Context能干什么 Context作用域 Intent的使用 使用显示Intent 使用隐式Intent 更多隐式...java 毫无疑问, java 目录是放置我们所有Java 代码的地方,展开该目录,你看到我们刚才创建的HelloWorldActivity 文件就在里面。 res 这个目录下的内容就有点多了。...销毁当前活动 按一下Back()键,或使用: finish(); Java中的Context上下文 简单理解Context ​ “环境”、“容器”,承上启下。...使用显示Intent ​ 首先构建出了一个Intent ,传人FirstActivity.this 作为上下文,传入SecondActivity.class 作为目标活动,这样我们的“意图”就非常明显了...如果传递的是整型数据,则使用getintExtra方法;如果传递的是布尔型数据,则使用getBooleanExtra()方法,以此类推。

98940

适用于 ANDROID 的 ADOB​​E ACROBAT READER 中的 RCE (CVE-2021-40724)

Abode reader 还使用 Google play 核心库进行动态代码加载。使用路径横向错误和动态代码加载,我能够实现远程代码执行。...例如,当带有数据 url 的意图http://localhost/test.pdf 被发送到 adobe reader 应用程序时,它会下载文件/sdcard/Downloads/Adobe Acrobat...downloadFile在变量传递到文件实例之前,没有对变量进行任何清理,这导致了路径横向漏洞。...com.adobe.reader/files/splitcompat/1921618197/verified-splits/来自攻击者 apk 的类将自动添加到应用程序的 ClassLoader 中,并且应用程序调用时执行恶意代码...在使用我设备上安装的 play 核心库分析其他应用程序后,我看到 play 核心库还提供了 /data/data/com.adobe.reader/files/splitcompat/:id/native-libraries

82410

使用 Intent 启动 Activity和Activity之间的数据传递

); /* * 调用Intent的putExtra方法来储存要传输的数据,以 “键值-对”的形式储存数据 */ intent.putExtra..., bitmap); /* * 这里intent要传输的数据设置为Bundle对象,其实即使我们直接通过Intent对象的putExtra方法 *...接口来将我们要传递的自定义数据“序列化”,那么在这里,这个Parcelable接口的功能也是一样的,也是一些复杂的数据序列化用于传输,两者的区别在于效率问题Parcelable接口的效率更高,但是使用起来更加复杂...,要实现接口中的一系列抽象方法用于复杂的类型序列化,而Serializable接口使用简单,复杂的数据类型只需要用使用这个接口就行了,不需要我们去对这个数据类型序列化,序列化的过程由系统完成。...第三个方法sendObjectData中的Book类就是实现了serializable接口,之后通过intent的putExtra方法的重载实现的传递,我们来看一下Book.java: package

2.1K10

Android基础总结(2)——活动Activity

2、怎么使用活动(Activity) 定义Activity: 1 public class MainActivity extends Activity { 2 3 @Override 4...详情可参考:http://blog.csdn.net/hunanwy/article/details/8622433  或者 《第一行代码:Android》  P46 6、如何向下一个活动传递数据以及返回数据给上一个活动...  在启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以将我们想要的数据暂存在Intent中,启动另一个活动后,只需要将这些数据取出就可以了。    ...(intent, 1); 7 8 } 9 }); 然后我们在SecondActivity中处理完之后,返回的数据通过putExtra...Activity的前台生命周期:调用onResume()到相应的调用onPause()。在此生命期中,活动总是处于运行状态下的,此时的活动是可以和用户进行交互的。 8、如何保存活动的状态?

1.1K90

Kotlin入门(21)活动页面的跳转处理

对于App开发者来说,该功能的实现非常普通,使用Java编码不过以下两行代码而已:     Intent intent = new Intent(MainActivity.this, LinearLayoutActivity.class...2、获取某个类的class对象,Java的写法是“类名.class”,而Kotlin的写法是“类名::class.java”,一看便知带有浓浓的Java风味; 看起来,Kotlin代码与Java代码半斤八两...,如果使用Java编码,可以很轻松地调用Intent对象的putExtra方法,通过“putExtra(参数名, 参数值)”的方式传递消息,就像下面代码那样:     Intent intent = new...intent.putExtra("request_content", et_request.getText().toString());     startActivity(intent); 如果使用Anko...譬如前面的活动跳转传递了两个字段数据,如果把这两个字段放到Parcelable对象中,仅仅包含两个字段的Parcelable类对应的Java代码也如下面这般冗长: public class MessageInfo

1.6K30

大话企业级android读书笔记(二)

举例来说,有一个线程运行在后台网络上下载数据,它可能会在onCreate()中创建线程,在onDestroy()中结束线程。...因为onPause()是唯一一个保证在进程被杀之前会调用的,因此你应该使用onPause()来写任何持久化存储数据。 被标记为No的方法保护活动寄宿的进程在他们调用的时候不会被杀掉。...(ActivityMain.this, Activity2.class);   intent1.putExtra("activity1", text);   startActivity(intent1....putExtra("activity1", text);   startActivity(intent1 );   B.传对象,对象要实例化,继承Serializable   Java代码   Bundle...用于多个Activity之间互相传递数据。 android的隐形管理员:Service Service字面上理解即为“服务”,这里与windows中的服务有点类似。

1K50

Android开发之Activity的创建跳转及传值

在应用中能看到的东西都是放在活动中的。活动是安卓开发比较重要的东西,是用户交互和数据的入口。本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。...活动创建后会在资源目录中生成三个文件,如下图所示,java中的SecondActivity文件有前面的"C"标志可知,是JavaClass文件,也就是Activity对应的源文件。...详细的看一下如何去添加控件并监听控件的事件。...使用Intent进行Activity的跳转 Intent在Android开发中被誉为“意图”,字面意思不难理解,就是“你打算去哪”。...3.返回中的Activity中获取值 从上面的实例中可知,我们可以把值从一个Activity中传入到下一个Activity中。接下来要做的事情刚好相反,是返回的页面中获取值。

3.1K100

Android-使用Intent传递数据

思路很简单,Intent提供了一系列putExtra()方法的重载, 可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后, 再把这些数据Intent中取出就可以了。...); intent.putExtra("extra_data",data); startActivity(intent); 我们使用显式Intent方式启动...SecondActivity,并通过putExtra()方法传递了一个字符串, 接收两个参数, 第一个参数是键,用于后面Intent中取值, 第二个参数是要传递的数据。..., 没有指定任何“意图”,把要传递的数据存放在Intent中,调用setResult()方法, 专门用于向上一个活动返回数据的,接收两个参数, 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK...的值来判断数据来源, 确定数据SecondActivity返回的,在通过resultCode值来判断处理结果是否成功, 最后data中取值打印出来。

1K30
领券