Указан небезопасный путь к Content Provider
Описание
Что такое Content Provider?
Как следует из названия, Content Provider, отвечает за предоставление данных и управление доступом к ним. Эти данные могут храниться в файловой системе, в базе данных SQLite или в любом другом постоянном хранилище, доступном из вашего приложения. С помощью Content Provider любое приложение с соответствующими разрешениями может читать или даже изменять данные, используя стандартный набор API, который позволяет выполнять необходимые транзакции.
Для защиты чувствительных данных Content Provider имеет ряд атрибутов, см. ниже.
| Атрибут | Описание | 
|---|---|
| android:permission | Указывается разрешение, которое требуется для доступа к данным Content Provider | 
| android:readPermission | Указывается разрешение, которое требуется для чтения данных Content Provider | 
| android:writePermission | Указывается разрешение, которое требуется для записи данных Content Provider | 
| <grant-uri-permissionandroid:path="string"android:pathPattern="string"android:pathPrefix="string"/> | Указывает подмножества данных приложения, к которым у Content Provider есть разрешение на доступ | 
| <path-permissionandroid:path="string"android:pathPrefix="string"android:pathPattern="string"android:permission="string"android:readPermission="string"android:writePermission="string"/> | Определяет путь и необходимые разрешения для определенного подмножества данных внутри Content Provider. Этот элемент можно указать несколько раз, чтобы указать несколько путей | 
У элементов <grant-uri-permission и <path-permission есть атрибуты android:path, android:pathPrefix и android:pathPattern. 
| Атрибут | Описание | 
|---|---|
| android:path | Полный путь URI для подмножества данных Content Provider. Разрешение может быть предоставлено только конкретным данным, указанным по этому пути. При использовании для предоставления содержимого поисковых предложений к нему добавляется/search_suggest_query | 
| android:pathPrefix | Начальная часть пути URI для подмножества данных Content Provider. Разрешение может быть предоставлено всем подмножествам данных с путями, которые разделяют эту начальную часть | 
| android:pathPattern | Полный путь URI для подмножества данных Content Provider, но который может использовать wildcards. | 
Необходимо внимательно проверять указанные значения данных атрибутов.
Проблема
Если значения атрибутов android:path, android:pathPrefix и android:pathPattern равны "/" или ".*" — ContentProvider разрешит доступ ко всем своим данным.
Рекомендации
При использовании атрибутов android:path, android:pathPrefix и android:pathPattern у ContentProvider необходимо избегать указания значений в виде: "/" или ".*".
| Плохо | Хорошо | 
|---|---|
| <grant-uri-permission android:path="/"/><grant-uri-permission android:pathPrefix="/"/><grant-uri-permission android:pathPattern=".*"/> | <grant-uri-permission android:path="/all_downloads"/><grant-uri-permission android:pathPrefix="/all_downloads"/><grant-uri-permission android:pathPattern="/plugin/callback/..*/"/> |