保护Android Intent中的额外数据

前端之家收集整理的这篇文章主要介绍了保护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相关文章