Android:exportiert
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
OWASP-Kategorie:MASVS-PLATFORM: Platform Interaction
Übersicht
Mit dem android:exported
-Attribut wird festgelegt, ob eine Komponente (Aktivität, Dienst, Broadcast-Empfänger usw.) von Komponenten anderer Anwendungen gestartet werden kann:
- Wenn
true
, kann jede App auf die Aktivität zugreifen und sie über den genauen Klassennamen starten.
- Wenn
false
, können nur Komponenten derselben Anwendung, Anwendungen mit derselben Nutzer-ID oder privilegierte Systemkomponenten die Aktivität starten.
Die Logik hinter dem Standardwert dieses Attributs hat sich im Laufe der Zeit geändert und war je nach Komponententyp und Android-Version unterschiedlich. Auf API-Ebene 16 (Android 4.1.1) oder niedriger ist der Wert für <provider>
-Elemente beispielsweise standardmäßig auf true
festgelegt. Wenn Sie dieses Attribut nicht explizit festlegen, besteht das Risiko, dass auf einigen Geräten unterschiedliche Standardwerte verwendet werden.
Positiv beeinflussen
Durch die unterschiedlichen Standardwerte können interne Anwendungskomponenten versehentlich offengelegt werden. Einige Beispiele für die Folgen:
Denial-of-Service-Angriffe
Andere Apps greifen unangemessen auf interne Komponenten zu, um die internen Funktionen Ihrer App zu ändern.
Weitergabe vertraulicher Daten
Codeausführung im Kontext der anfälligen Anwendung.
Maßnahmen zur Risikominderung
Legen Sie das Attribut android:exported
immer explizit fest. So lassen Sie keinen Raum für Interpretationen und signalisieren Ihre Absicht in Bezug auf die Sichtbarkeit einer Komponente klar.
Empfehlungen für dich
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# android:exported\n\n\u003cbr /\u003e\n\n**OWASP category:** [MASVS-PLATFORM: Platform Interaction](https://mas.owasp.org/MASVS/09-MASVS-PLATFORM)\n\nOverview\n--------\n\nThe `android:exported` [attribute](/guide/topics/manifest/activity-element#exported) sets whether a component (activity, service, broadcast receiver, etc.) can be launched by components of other applications:\n\n- If `true`, any app can access the activity and launch it by its exact class name.\n- If `false`, only components of the same application, applications with the same user ID, or privileged system components can launch the activity.\n\nThe logic behind the default value of this attribute changed over time and was different depending on the component types and Android versions. For example, on API level 16 (Android 4.1.1) or lower the value for `\u003cprovider\u003e` elements is set to `true` by default. Not setting this attribute explicitly carries the risk of having different default values between some devices.\n\nImpact\n------\n\nThe situation with different default values means you could accidentally expose internal application components. A few examples of the consequences could be the following:\n\nDenial of service attacks.\nOther apps inappropriately accessing internal components to modify your app's internal functionality.\nLeaking of sensitive data.\nCode execution in the context of the vulnerable application.\n\nMitigations\n-----------\n\nAlways explicitly set the `android:exported` attribute. This will leave no room for interpretation and clearly signal your intention with regard to a component's visibility.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [# Key management {:#key-management}](/topic/security/data)\n- [Run embedded DEX code directly from APK](/topic/security/dex)\n- [Tapjacking](/topic/security/risks/tapjacking)"]]