2012-11-19 9 views
18

Sto utilizzando ContentProvider nella mia applicazione Android per condividere il database tra l'applicazione. Per condividere il database ho bisogno di aggiungere l'accesso provider nel AndroidManifest.xml come la seguente:I fornitori di contenuti esportati possono fornire accesso a dati potenzialmente sensibili

<provider 
android:name="Contentprovider" 
android:authorities="umb.con.apps.vid" /> 

ho aggiunto e implementato con successo, ma il messaggio di avviso che mostra nel tag <provider/> come questo "fornitori di contenuti esportati possono fornire l'accesso a potenzialmente sensibili dati". In futuro causerà problemi di sicurezza?

risposta

36

Se si desidera solo il fornitore di contenuti a cui accedere internamente da dentro la vostra applicazione, è sufficiente aggiungere

android:exported="false" 

nel nodo nel manifesto.

Dal doc:

falso: Il provider non è disponibile per altre applicazioni. Imposta android: exported = "false" per limitare l'accesso al provider alle tue applicazioni. Solo le applicazioni che hanno lo stesso ID utente (UID) del provider potranno accedervi.

Se, d'altra parte, si vuole veramente di esporre i dati per altre applicazioni ma hai anche i dati sensibili nel vostro storage dei dati, si ricordi che è possibile avere più di un fornitore di contenuti e quindi esporre solo quella "pubblica".

+1

Si noti inoltre che questo è l'impostazione predefinita se si utilizza il targeting 4.2 (livello API 17). –

+2

In che modo si può ottenere esattamente un avvertimento se non si desidera che il fornitore esporti i dati a qualsiasi altra app? Strumenti – pat8719

+1

@ pat8719: ignore = "ExportedContentProvider" in manifest xml – Ian1971

8

Anche se si è certi che si desidera consentire l'accesso esterno al vostro fornitore di contenuti e il silenzio l'avviso aggiungere tools:ignore="ExportedContentProvider"

esempio

<provider 
tools:ignore="ExportedContentProvider" 
android:exported="true" 
android:name="Contentprovider" 
android:authorities="umb.con.apps.vid" /> 
+1

Assicurati di includere il prefisso dello spazio dei nomi XML per 'tools' nel tag' manifest': '' –

Problemi correlati