2

私は最近、HPFortifyサービスを使用してAndroidソースコードでコードスキャンを行いました。彼らは、ブロードキャスト受信者と送信者のいずれかに関するセキュリティの脆弱性を報告しました。ブロードキャストの送信者と受信者は、アプリケーションの内部にあり、意図はアプリケーションの外部には送信されません。これらは主に内部通信に使用されます。 HPFortifyは、攻撃者の攻撃を減らすために放送局の許可を使用するように提案しました。この方法では、放送局を制限しています。そうしないと、悪質なアプリケーションが意図を送信し、放送受信者がそれを処理します。同様に、彼らは、放送された意図が意図された受信機によって受信されるように受信機の許可を使用することを提案した。この放送局と受信機はアプリの内部にあり、他のアプリはこの目的を使用しません。プライベートブロードキャストの送信者と受信者のアクセス許可

Intent updatedIntent = new Intent("SOME-ACTION"); 
Context context = getAppContext(); 
context.sendBroadcast(updatedIntent); 

私は動的に次のコードスニペットを使用した放送受信機を登録しています:ここで は、放送局のための私の実際のコードです。

this.registerReceiver(updatedReceiver, 
new IntentFilter("SOME-ACTION")); 

HPFortifyが許可文字列の例で使用sendBroadcastことを示唆している:

放送受信のための同様
Intent updatedIntent = new Intent("SOME-ACTION"); 
Context context = getAppContext(); 
context.sendBroadcast(updatedIntent, "SOME-PERMISSION"); 

:私はこの権限を定義する方法を確認していない

this.registerReceiver(updatedReceiver, 
    new IntentFilter("SOME-ACTION"), 
    "SOME-PERMISSION", null); 

と放送局と放送受信機で使用してください。私はAndroidManifest.xmlにプライベート許可を定義し、ここでそれを使用する必要がありますか?

+1

LocalBroadCastManagerを使用していますか?ローカルブロードキャストマネージャーは、他のアプリケーションがあなたのアプリにブロードキャストインテントを送信するのを防ぎます。 curtsyアンドロイドデベロッパードットコム。 "他のアプリケーションがこれらのブロードキャストをあなたのアプリに送ることはできないので、あなたが悪用できるセキュリティホールを持つことについて心配する必要はありません。 – mcd

+0

権限を定義する必要がありますか、このクラスを直接使用できますか?私によると – Rakesh

+0

とアンドロイドサイト:-)。 localbroadcastmanagerを使用している場合はアクセス許可を定義する必要はありません。 http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html google itたとえば – mcd

答えて

3

ローカルブロードキャストマネージャがブロードキャストインテントを現在のプロセスの外部に送信しないため、アプリケーション内でブロードキャストする必要がある場合は、LocalBroadCastManagerを使用します。

他のアプリケーションがブロードキャストを受信または送信できるようにするには、BroadCastManagerを使用し、uses-permission(カスタムユーザ許可)を適用する必要があります。

詳細については、下記をご覧ください。セキュリティに関するセキュリティ情報の詳細は、ブロードキャストレシーバのAndroidのマニュアルをご覧ください。

http://developer.android.com/reference/android/content/BroadcastReceiver.html

0

AndroidManifest.xmlにプライベート許可を定義して使用する必要がありますか?

はい。パーミッションは常にマニフェストで定義する必要があります。そうしないと、Androidはこのアクセス許可に使用する保護レベルを知ることができませんでした。

+0

'LocalBoadCastManager'を使用する場合、私はまだパーミッションを使用する必要がありますか? – Rakesh

+0

@ F43nd1rアクセス​​許可は、アプリケーション間でブロードキャストを送信する場合にのみ必要です。 http://developer.android.com/reference/android/content/BroadcastReceiver.htmlセキュリティセクションで指定します。 – mcd

関連する問題