导出的内容提供商可以提供对潜在敏感数据的访问

时间:2012-11-19 06:02:06

标签: android android-contentprovider

我在我的android应用程序中使用ContentProvider在应用程序之间共享数据库。为了共享数据库,我需要在AndroidManifest.xml中添加提供者访问权限,如下所示:

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

我已成功添加并实施,但<provider/>标记中显示的警告消息如此“导出的内容提供商可以提供对潜在敏感数据的访问”。它将来会引起任何安全问题吗?

2 个答案:

答案 0 :(得分:37)

如果您只想在应用内部访问内容提供商,只需添加

即可
android:exported="false"

进入清单中的节点。

来自doc

  

false:提供程序不可用于其他应用程序。设置android:exported =“false”以限制对应用程序的提供程序的访问。只有与提供商具有相同用户ID(UID)的应用程序才能访问它。

另一方面,如果您确实希望将数据公开给其他应用,那么您的数据存储中也会包含敏感数据,请记住您可以拥有多个内容提供商,因此揭露“公开”的一个。

答案 1 :(得分:8)

此外,如果您确定要允许外部访问您的内容提供商并将警告静音,请添加tools:ignore="ExportedContentProvider"

e.g。

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