android:esportato
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Categoria OWASP: MASVS-PLATFORM: Platform Interaction
Panoramica
L'android:exported
attributo imposta se un componente (attività, servizio, ricevitore di trasmissione ecc.) può essere avviato da componenti di altre applicazioni:
- Se
true
, qualsiasi app può accedere all'attività e avviarla con il nome esatto della classe.
- Se
false
, solo i componenti della stessa applicazione, le applicazioni con lo stesso ID utente o i componenti di sistema privilegiati possono avviare l'attività.
La logica alla base del valore predefinito di questo attributo è cambiata nel tempo ed era diversa a seconda dei tipi di componenti e delle versioni di Android. Ad esempio, al livello API 16 (Android 4.1.1) o inferiore, il valore degli elementi <provider>
è impostato su true
per impostazione predefinita. Se non imposti questo attributo in modo esplicito, rischi di avere valori predefiniti diversi tra alcuni dispositivi.
Impatto
La situazione con valori predefiniti diversi significa che potresti esporre accidentalmente componenti interni dell'applicazione. Ecco alcuni esempi di conseguenze:
Attacchi Denial of Service.
Altre app che accedono in modo inappropriato a componenti interni per modificare la funzionalità interna della tua app.
Divulgazione di dati sensibili.
Esecuzione del codice nel contesto dell'applicazione vulnerabile.
Mitigazioni
Imposta sempre in modo esplicito l'attributo android:exported
. In questo modo non ci sarà spazio per interpretazioni e la tua intenzione in merito alla visibilità di un componente sarà chiara.
Consigliati per te
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)"]]