2016-10-12 2 views
0

То есть, адреса вернулись getExternalCacheDir() и getCacheDir().Насколько безопасен кеш приложений Android?

Могут ли другие приложения определенного уровня доступа получить доступ к этим каталогам? Нужен ли телефон для доступа к ним?

Что можно хранить там безопасно, и что я должен избегать хранения там?

ответ

0

Могут ли другие приложения определенного уровня доступа получить доступ к этим каталогам?

getExternalCacheDir() доступен любым приложением, которое держит разрешение на READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE.

getCacheDir() доступен только вашему приложению, за исключением того, что на корневых устройствах пользователь явно использует приложение, которое использует возможности суперпользователя для доступа к всей файловой системе. Однако любое приложение может заставить систему очистить кеш, поэтому в какой-то мере любое приложение может иметь привилегии удаления для getCacheDir(). Если это касается вас, используйте getFilesDir().

Должен ли телефон использоваться для доступа к ним?

Для getCacheDir(), да (исключая описанный выше сценарий четкого кэша). Для getExternalCacheDir(), №.

+0

Спасибо за быстрый ответ. Может ли каталог, возвращаемый getCacheDir(), быть подходящим для хранения токенов доступа для удаленного API, например? Или это будет лучше хранить в другом месте? –

+0

@QuestionAsker: Это зависит от того, кого вы беспокоитесь об использовании этих жетонов и какова степень риска, если кто-то получает эти жетоны. Если вас беспокоят запущенные вредоносные программы, а токены не являются исключительно ценными, 'getCacheDir()' должно быть в порядке. Если вы беспокоитесь о том, что * пользователь * крадет токены, не держитесь за них в файлах, а только удерживайте их в ОЗУ, а затем узнайте, что достаточно выделенные злоумышленники могут их получить (например, запустите приложение на эмуляторе, используйте отладчик ядра). – CommonsWare

Смежные вопросы