Kürzlich habe ich einen Code-Scan auf meinem Android-Quellcode mithilfe des HPFortify-Dienstes durchgeführt. Sie berichteten von Sicherheitslücken in Bezug auf einen der Sendeempfänger und den Absender. Der Broadcast-Sender und -Empfänger sind intern in der App und die Absicht wird nicht außerhalb der Anwendung gesendet. Diese werden hauptsächlich für die interne Kommunikation verwendet. HPFortify schlug vor, die Broadcaster-Berechtigung zu verwenden, um den Angriffsvektor zu reduzieren. Auf diese Weise beschränken Sie den Sender, andernfalls kann jede böswillige Anwendung die Absicht senden und der Empfänger wird sie verarbeiten. In ähnlicher Weise schlugen sie vor, die Empfänger-Erlaubnis zu verwenden, so dass die gesendete Absicht von dem beabsichtigten Empfänger empfangen wird. Dieser Broadcaster und Empfänger sind intern in der App und andere App verwenden diese Absicht nicht. Hier ist mein eigentlicher Code für Broadcaster:private Sende- und Empfängerberechtigungen
Intent updatedIntent = new Intent("SOME-ACTION");
Context context = getAppContext();
context.sendBroadcast(updatedIntent);
ich dynamisch bin Registrierung des Rundfunkempfängers mit dem folgenden Code-Schnipsel.
this.registerReceiver(updatedReceiver,
new IntentFilter("SOME-ACTION"));
HPFortify legt nahe, dass die Verwendung der sendBroadcast
mit Erlaubnis Zeichenfolge Beispiel:
Intent updatedIntent = new Intent("SOME-ACTION");
Context context = getAppContext();
context.sendBroadcast(updatedIntent, "SOME-PERMISSION");
Ähnlich für Rundfunkempfänger:
this.registerReceiver(updatedReceiver,
new IntentFilter("SOME-ACTION"),
"SOME-PERMISSION", null);
Ich bin nicht sicher, wie diese Berechtigung zu definieren und Verwenden Sie es im Sender und Rundfunkempfänger. Muss ich die private Berechtigung in der AndroidManifest.xml definieren und sie hier verwenden?
verwenden Sie LocalBroadCastManager? Der lokale Broadcast-Manager verhindert, dass andere Anwendungen Broadcast-Absichten an Ihre App senden. knicks android entwickler dot com. "Es ist nicht möglich, dass andere Anwendungen diese Broadcasts an Ihre App senden, sodass Sie sich keine Sorgen über Sicherheitslücken machen müssen, die sie ausnutzen können." – mcd
Muss ich eine Berechtigung definieren oder kann ich diese Klasse direkt verwenden? – Rakesh
nach mir und Android-Website :-). Sie müssen keine Berechtigung definieren, wenn Sie den localbroadcastmanager verwenden. http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html. google es zum Beispiel – mcd