是否有针对 Android <10 上的任务劫持的修复?

Posted

技术标签:

【中文标题】是否有针对 Android <10 上的任务劫持的修复?【英文标题】:Is there a fix for task hijacking on Android <10? 【发布时间】:2021-09-05 13:48:02 【问题描述】:

我正在阅读这篇关于 android 上的任务劫持的文章:https://blog.dixitaditya.com/android-task-hijacking/

我尝试了推荐的修复方法,但仍然可以重现该问题。我还尝试在恶意应用程序的 Android 清单中将 Instagram、Gmail 应用程序的包名称指定为 android:taskAffinity 值,并在单击 Instagram、Gmail 后将我重定向到恶意应用程序。那么,Gmail 和 Instagram 为何容易受到此攻击,还是我在某个地方搞错了?

在 Android 上是否有针对此问题的适当修复?

【问题讨论】:

【参考方案1】:

首先我建议你了解tasklaunchModestaskAffinity。 这是关于这些主题的google doc。

作为一种解决方案;你可以使用singleInstance。它们非常相似,唯一的区别是,singleInstance 只保留一个活动,即使您在后台堆栈中有多个活动,它们似乎也不会出现在不同的任务中,因此您在 Recents 屏幕上只能看到一个任务.

【讨论】:

【参考方案2】:

我发现很多应用程序都容易受到攻击。只有launchMode="singleInstance"taskAffinity="..." 可以防止这种情况发生,但它会破坏许多有关活动导航的android 功能。

我真的很惊讶,在 2015 年左右检测到的如此严重的漏洞没有得到修复。

【讨论】:

以上是关于是否有针对 Android <10 上的任务劫持的修复?的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle - 仅针对特定任务过滤掉变体

是否可以仅针对某个 android 版本显示小部件?

是否有任何相当于 Android 的 <meta name='viewport' content='target-densitydpi=device-dpi'> 用于 iPhone 上的

在android gradle构建之前执行任务?

Angular:组件上的功能是不是针对组件的每个实例执行?

防止针对 Task<t> 进行单元测试