Путь к провайдеру 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>

Чему именно соответствует . и может ли это быть проблемой безопасности?

К Environment.getExternalStorageDirectory(). О какой проблеме безопасности вы думаете?

greenapps 02.06.2018 15:23
0
1
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

To what corresponds exactly .

Он относится к каталогу, указанному вашим элементом. В корпус <external-path> это Environment.getExternalStorageDirectory().

Если бы вместо . у вас был foo, это указывало бы на подкаталог foo/ в каталоге, указанном вашим элементом.

can it be a security issue?

Только если вы делаете что-то действительно странное в своем Java-коде.

FileProvider нельзя экспортировать. Единственное, что может получить доступ к контенту, обслуживаемому этим поставщиком:

  • Ваше приложение
  • Любые приложения, которым вы предоставляете разрешение из кода Java в своем приложении.

Обычно вы предоставляете разрешение через FLAG_GRANT_READ_URI_PERMISSION и / или FLAG_GRANT_WRITE_URI_PERMISSION на Intent. Это предоставляет доступ для чтения или записи к одному приложению, которое обрабатывает Intent для Uri, находящегося внутри этого Intent. Это очень ограниченное разрешение, и оно необходимо для успешного использования FileProvider.

Если вы обнаружите, что предоставляете разрешения другим способом, большему количеству приложений и большему количеству контента, возможно, это проблема безопасности. Но, опять же, он привязан к вашему Java-коду, а не столько к метаданным FileProvider.

Другие вопросы по теме