Android 导出的内容提供商可以提供对潜在敏感数据的访问
我在android应用程序中使用Android 导出的内容提供商可以提供对潜在敏感数据的访问,android,android-contentprovider,Android,Android Contentprovider,我在android应用程序中使用ContentProvider在应用程序之间共享数据库。为了共享数据库,我需要在AndroidManifest.xml中添加提供者访问权限,如下所示: <provider android:name="Contentprovider" android:authorities="umb.con.apps.vid" /> 我添加并成功实现了,但是标记中显示的警告消息如下:“导出的内容提供商可以提供对潜在敏感数据的访问”。它将来会导致任何安全问题吗?如果
ContentProvider
在应用程序之间共享数据库。为了共享数据库,我需要在AndroidManifest.xml
中添加提供者访问权限,如下所示:
<provider
android:name="Contentprovider"
android:authorities="umb.con.apps.vid" />
我添加并成功实现了,但是
标记中显示的警告消息如下:“导出的内容提供商可以提供对潜在敏感数据的访问”。它将来会导致任何安全问题吗?如果您只想从应用程序内部访问内容提供商,只需添加
android:exported="false"
进入清单中的节点
从:
false:该提供程序对其他应用程序不可用。设置android:exported=“false”以限制应用程序对提供商的访问。只有与提供程序具有相同用户ID(UID)的应用程序才能访问它
另一方面,如果您确实想将数据公开给其他应用程序,但数据存储中也有敏感数据,请记住,您可以有多个内容提供商,因此只公开“公众”一个。如果您确定要允许外部访问您的内容提供商并使警告静音,请添加
工具:ignore=“ExportedContentProvider”
e、 g
还请注意,如果您的目标是4.2(API级别17),这是默认设置。如果您不希望提供商将数据公开给任何其他应用程序,您如何准确地获得警告?@pat8719 tools:ignore=“ExportedContentProvider”在manifest xmlclose中这样做(android:exported=“false”
),我们可以在应用程序小部件中使用它吗?如果您添加tools:ignore,请记住将xmlns:tools=”“添加到manifest标记中。我花了一个小时才弄明白为什么tools:ignore会破坏清单文件。请确保在清单
标记中包含工具
的XML命名空间前缀:
<provider
tools:ignore="ExportedContentProvider"
android:exported="true"
android:name="Contentprovider"
android:authorities="umb.con.apps.vid" />