android:exported
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
OWASP kategorisi: MASVS-PLATFORM: Platform Etkileşimi
Genel Bakış
android:exported
Özelliği, bir bileşenin (etkinlik, hizmet, yayın alıcısı vb.) diğer uygulamaların bileşenleri tarafından başlatılıp başlatılamayacağını belirler:
true
ise herhangi bir uygulama etkinliğe erişebilir ve tam sınıf adıyla başlatabilir.
false
ise yalnızca aynı uygulamanın bileşenleri, aynı kullanıcı kimliğine sahip uygulamalar veya ayrıcalıklı sistem bileşenleri etkinliği başlatabilir.
Bu özelliğin varsayılan değerinin arkasındaki mantık zaman içinde değişti ve bileşen türlerine ve Android sürümlerine göre farklılık gösterdi. Örneğin, API düzeyi 16 (Android 4.1.1) veya daha eski sürümlerde <provider>
öğelerinin değeri varsayılan olarak true
olarak ayarlanır. Bu özelliği açıkça ayarlamamak, bazı cihazlar arasında farklı varsayılan değerlere sahip olma riskini beraberinde getirir.
Etki
Farklı varsayılan değerlerin kullanılması, dahili uygulama bileşenlerini yanlışlıkla herkese açık hale getirebileceğiniz anlamına gelir. Sonuçlara ilişkin birkaç örnek:
Hizmet reddi saldırıları.
Diğer uygulamaların, uygulamanızın dahili işlevlerini değiştirmek için dahili bileşenlere uygunsuz şekilde erişmesi.
Hassas verilerin sızdırılması
Güvenlik açığı olan uygulama bağlamında kod yürütme.
Risk azaltma önlemleri
android:exported
özelliğini her zaman açıkça ayarlayın. Bu sayede, yorum yapmaya gerek kalmaz ve bir bileşenin görünürlüğüyle ilgili niyetiniz net bir şekilde belirtilir.
Sizin için önerilenler
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[null,null,["Son güncelleme tarihi: 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)"]]