首页 > 解决方案 > 用于摄像头和安全的 Android 提供程序路径

问题描述

我按照这篇文章在我的应用程序中拍照,但是在文章中作者给出了.FileProvider 的路径。

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

与什么完全对应.,这可能是一个安全问题吗?

标签: androidandroid-intentandroid-camera

解决方案


与确切对应的内容.

它指的是您的元素标识的目录。的情况<external-path>,即Environment.getExternalStorageDirectory()

如果.您有,而不是foo,那将指向foo/由您的元素标识的目录下的子目录。

这可能是一个安全问题吗?

仅当您在 Java 代码中做了一些非常奇怪的事情时。

AFileProvider无法导出。唯一可以访问该提供商提供的内容的是:

  • 你的应用
  • 您从应用程序中的 Java 代码授予权限的任何应用程序

通常,您通过FLAG_GRANT_READ_URI_PERMISSION和/或FLAG_GRANT_WRITE_URI_PERMISSIONIntent. Intent这将授予对在Urithat 内部处理 的一个应用程序的读取或写入访问权限Intent。这是一个非常有限的权限授予,您必须成功使用FileProvider.

如果您发现自己以其他方式授予更多应用程序和更多内容的权限,那么可能存在安全问题。但是,同样,它与您的 Java 代码相关,而不是FileProvider元数据。


推荐阅读