我正在使用 Intent 在新任务中启动新 Activity。此 Intent 在其 extras 中携带该 Activity 所需的一些私有(private)数据。其他应用程序不应读取此数据。 我们已经调查了这些数据是否确实没有泄露。我们发现,通过使用 getRecentTasks() 中的 RecentTaskInfo,任何具有 GET_TASK 权限的任意应用程序都可以读取此额外数据。 这不是很安全。 一旦我们发现这个漏洞,我们就停止了搜索。是否有更多方式泄露这些数据? 而且,我如何确保 extra 中的数据不能被其他应用程序读取?
最佳答案
从 Android 4.1.1 开始,添加了一个额外的权限来保护第三方应用程序使用 RecentTaskInfo
读取 extra。此权限(android.Manifest.permission.GET_DETAILED_TASKS
)只能由系统获取。如果没有此权限,将在通过 RecentTaskInfo
返回 baseIntent
之前换出额外内容。
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
因此,似乎正在努力使 intent extra 更安全地传输敏感信息。我不知道是否有其他方式可以泄漏这些额外的内容,但至少从 JB 开始,额外的内容看起来还不错。
关于android - 保护 Android Intent 中的额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15501260/