保护Android Intent中的额外数据

我正在使用Intent在新任务中启动一个新的Activity.此Intent在其附加内容中携带该Activity所需的一些私有数据.其他应用程序不应读取此数据.
我们已经调查过这些数据是否确实没有泄露.我们发现通过使用getRecentTasks()中的RecentTaskInfo,任何具有GET_TASK权限的任意应用程序都可以读取这些额外数据.
这不是很安全.
一旦发现这种泄漏,我们就停止了搜索.这些数据泄露的方式有多少?
而且,我如何确保其他应用程序无法读取额外数据?

解决方法

Android 4.1.1开始,添加了一项额外的权限,以防止第三方应用使用RecentTaskInfo读取额外内容.此权限(android.Manifest.permission.GET_DETAILED_TASKS)只能由系统获取.如果没有此权限,则在通过RecentTaskInfo返回baseIntent之前,将替换extra.

来自commit http://androidxref.com/4.2.2_r1/history/frameworks/base/services/java/com/android/server/am/ActivityManagerService.java#8238e717df4bc5eebf15f97172d68af3599a95bb评论

Add new signature-level permission to get details of tasks.

Third party apps Now can’t get access to the extras of the intents
associated with tasks,to keep private data in them from leaking out.

Change-Id: I95af9e181ac42557bc8b981807e7ddd266a88d0e

因此,似乎正在努力使意图更安全地传输敏感信息.我不知道是否还有其他方式可以泄漏这些额外的东西,但至少从JB上来看,额外的东西似乎没问题.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...