0

在我的 Android 应用程序中存在一个安全漏洞,我的应用程序可以被恶意应用程序打开。我在启动器活动中使用以下意图过滤器。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

这个意图过滤器使 Main Activity 暴露给其他应用程序。有没有办法将 Main Activity 只暴露给 Android OS 而不是其他应用程序。据我了解,我们不能使用“exported=false”。

4

1 回答 1

2

有没有办法将 Main Activity 只暴露给 Android OS 而不是其他应用程序。

不是你定义的术语。

每个活动,无论是否导出,都“暴露”给“Android OS”。否则,它们将无法使用,即使应用程序本身也是如此。导出的活动和不导出的活动之间的区别在于第三方应用程序是否可以启动活动。

主屏幕本身只是一个应用程序。一台设备至少预装了一个主屏幕,用户可以从 Play 商店或其他地方安装其他主屏幕。因此,从您的应用程序的角度来看,主屏幕是第三方活动。

在我的 Android 应用程序中存在一个安全漏洞,我的应用程序可以被恶意应用程序打开

拥有导出的活动本身并不是“安全漏洞”。您的论点类似于说“我的网站存在安全漏洞——我如何允许我的主页只能从 Google 搜索结果打开,而不能通过书签或任何其他网站打开?”。

从安全的角度来看,不必要地导出活动是不好的,但启动器活动是必要的。

于 2017-08-08T20:43:32.327 回答