2017-08-08 6 views
-1

私のAndroidアプリには、悪意のあるアプリケーションによって私のアプリが開かれるというセキュリティ上の脆弱性が存在します。ランチャーアクティビティで次のインテントフィルタを使用しています。Android OSだけがランチャーアクティビティを開くことを許可します

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

このインテントフィルタは、メインアクティビティを他のアプリケーションに公開します。メインアクティビティをAndroid OSにのみ公開し、他のアプリケーションに公開する方法はありません。私が理解する限り私たちは "exported = false"を使うことはできません。

+1

実際にAndroid OSはアクティビティを起動しません。ランチャーアプリが起動します。それは他のアプリと同様に、通常の第3党のアプリです。 –

+2

ランチャーはアプリケーションです。他のアプリの呼び出しをブロックすると、アプリが使用できなくなります –

答えて

1

メインアクティビティをAndroid OSのみに公開する方法はありますか。他のアプリケーションには公開できません。

用語を定義するものではありません。

エクスポートされたかどうかに関わらず、すべてのアクティビティは「Android OS」に「公開」されます。さもなければ、それらはアプリケーション自体によってさえ、使用不能になります。エクスポートされたアクティビティとそうでないアクティビティの違いは、サードパーティのアプリがアクティビティを開始できるかどうかではありません。

ホームスクリーン自体は単なるアプリです。デバイスには少なくとも1つのホーム画面があらかじめインストールされており、ユーザーはPlayストアなどから他のものをインストールすることができます。したがって、アプリの観点からは、ホーム画面はサードパーティのアクティビティです。私のAndroidアプリで

私のアプリは、エクスポートされた活性を有する、悪意のあるアプリケーション

で開くことができ、セキュリティの脆弱性は、それ自体で「セキュリティ上の脆弱性」がないです。あなたの主張は、「自分のホームページにセキュリティ上の脆弱性がありますか?—ホームページをブックマークや他のWebサイトではなくGoogle検索結果からのみ開くことを許可するにはどうすればいいのですか?

が不必要にエクスポートされているセキュリティの観点から、アクティビティは悪いですが、ランチャーアクティビティは必要に応じてエクスポートされます。

関連する問題