Подтвердить что ты не робот

Экспортированные поставщики контента могут предоставлять доступ к потенциально конфиденциальным данным

Я использую ContentProvider в своем приложении Android для совместного использования базы данных между приложением. Для совместного использования базы данных мне нужно добавить доступ к провайдеру в AndroidManifest.xml следующим образом:

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

Я добавил и реализовал успешно, но предупреждающее сообщение, отображаемое в теге <provider/>, как это: "Экспортированные поставщики контента могут предоставлять доступ к потенциально конфиденциальным данным". Будет ли это причиной любой проблемы безопасности в будущем?

4b9b3361

Ответ 1

Если вы просто хотите, чтобы контент-провайдер был доступен изнутри внутри приложения, просто добавьте

android:exported="false"

в node в манифесте.

Из doc:

false: поставщик недоступен для других приложений. Установите android: exported = "false", чтобы ограничить доступ к поставщику вашим приложениям. Доступ к нему будут иметь только те приложения, которые имеют тот же идентификатор пользователя (UID), что и поставщик.

Если, с другой стороны, вы действительно хотите разоблачить свои данные в других приложениях , но, у вас также есть конфиденциальные данные в вашем хранилище данных, помните, что у вас может быть несколько поставщиков контента и, следовательно, выставлять только "общедоступную".

Ответ 2

Также, если вы уверены, что хотите разрешить внешний доступ к вашему провайдеру контента и отключите предупреждение, добавьте tools:ignore="ExportedContentProvider"

например.

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