19

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

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

我成功添加并实施,但<provider/>标签中显示警告消息,如“导出的内容提供程序可以提供对潜在敏感数据的访问”。以后会不会引起安全问题?

4

2 回答 2

38

如果您只想从应用程序内部访问内容提供程序,只需添加

android:exported="false"

进入清单中的节点。

文档

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

另一方面,如果您确实想向其他应用程序公开您的数据,您的数据存储中也有敏感数据,请记住您可以拥有多个内容提供者,因此只公开“公共”内容提供者。

于 2012-11-19T06:26:44.233 回答
9

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

例如

<provider
tools:ignore="ExportedContentProvider"
android:exported="true"
android:name="Contentprovider"
android:authorities="umb.con.apps.vid" />
于 2013-02-21T15:00:31.043 回答