2012-11-19 12 views
18

Ich verwende ContentProvider in meiner Android-Anwendung, um die Datenbank zwischen der Anwendung zu teilen. Für die Datenbank teilen Ich brauche den Provider Zugang in AndroidManifest.xml hinzuzufügen wie wie folgt:Exportierte Inhaltsanbieter können Zugriff auf potenziell sensible Daten gewähren

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

I hinzugefügt und erfolgreich umgesetzt, aber die Warnmeldung im <provider/> Tag wie dieser „Exportierte Content-Anbieter zeigen können den Zugriff auf potenziell sensible bieten Daten". Wird es in Zukunft ein Sicherheitsproblem geben?

Antwort

36

Wenn Sie nur den Content-Provider wollen intern innerhalb Ihrer App zugegriffen werden, fügen Sie einfach

android:exported="false" 

in den Knoten in dem Manifest.

Vom doc:

false: Der Anbieter ist für andere Anwendungen nicht zur Verfügung. Setzen Sie android: exported = "false", um den Zugriff auf den Provider auf Ihre Anwendungen zu beschränken. Nur Anwendungen, die die gleiche Benutzerkennung (UID) wie der Provider haben, haben Zugriff darauf.

Wenn auf der anderen Seite wollen Sie wirklich Ihre Daten an andere Anwendungen aber Sie auch sensible Daten in Ihrem Datenspeicher müssen aussetzen, denken Sie daran, dass Sie mehr als ein Content-Provider haben kann und somit nur aussetzen das "öffentliche".

+1

Beachten Sie auch, dass dies der Standardwert ist, wenn Sie auf 4.2 (API Level 17) abzielen. –

+2

Wie genau können Sie von der Warnung profitieren, wenn Sie möchten, dass der Anbieter die Daten einer anderen App zur Verfügung stellt? – pat8719

+1

@ pat8719 tools: ignore = "ExportedContentProvider" in Manifest xml – Ian1971

8

Auch wenn Sie sicher sind, dass Sie die Warnung hinzufügen tools:ignore="ExportedContentProvider"

externen Zugriff auf Ihren Content-Provider und Stille zulassen möchten z.B.

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

Achten Sie darauf, das XML-Namespacepräfix für 'tools' in Ihr Manifest-Tag einzufügen:' ' –

Verwandte Themen