私は最近、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にプライベート許可を定義し、ここでそれを使用する必要がありますか?
LocalBroadCastManagerを使用していますか?ローカルブロードキャストマネージャーは、他のアプリケーションがあなたのアプリにブロードキャストインテントを送信するのを防ぎます。 curtsyアンドロイドデベロッパードットコム。 "他のアプリケーションがこれらのブロードキャストをあなたのアプリに送ることはできないので、あなたが悪用できるセキュリティホールを持つことについて心配する必要はありません。 – mcd
権限を定義する必要がありますか、このクラスを直接使用できますか?私によると – Rakesh
とアンドロイドサイト:-)。 localbroadcastmanagerを使用している場合はアクセス許可を定義する必要はありません。 http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html google itたとえば – mcd