Является ли уязвимым приложение для Android, которое использует локальные файлы JSON для хранения данных?

#java #android #json #security #code-injection

#java #Android #json #Безопасность #внедрение кода

Вопрос:

Мое приложение для Android использует обычные текстовые файлы JSON для хранения некоторых данных. Такие файлы сохраняются в личной папке приложения, например, Android/data/com.example.app/ . Я хотел бы знать, уязвимо ли мое приложение с такими файлами. Данные в этих файлах не являются разумными или секретными, и они не обрабатываются JavaScript (они анализируются с помощью методов Java JSON); Я обеспокоен тем, что какой-то вредоносный код JSON будет введен и испортит мое приложение или устройство пользователя. Возможно ли это?

Ответ №1:

Даже если введенный код не был вредоносным, это может вызвать у вас проблемы, потому что:

  • Другие могут просматривать и изменять файл. (По крайней мере, с корневыми устройствами)
  • если содержимое изменено, вы можете получить неожиданные результаты при разборе файла.
  • Вы бы не хотели, чтобы данные, связанные с вашим приложением, были изменены другими любыми способами, если вы этого не хотите (но с помощью контент-провайдеров).

Надеюсь, это имеет смысл.

Комментарии:

1. Но если вы не найдете никакой альтернативы, вы наверняка можете использовать какую-нибудь разумную подпись, которая всегда позволит вашему приложению идентифицировать аутентифицированные файлы JSON и отличать их от вредоносных …. имеет ли это смысл?

Ответ №2:

По умолчанию данные, которые вы храните в личной папке, недоступны ни пользователю, ни другим приложениям. Смотрите документацию об этом на веб-сайте разработчиков Android: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

Однако, как упоминалось SMR, если устройство было внедрено, эти данные доступны пользователю и могут быть скомпрометированы любыми приложениями, которым пользователь предоставил root-разрешение. Однако на самом деле укоренено меньшинство пользователей, а те, кто есть, должны более или менее знать, во что они ввязались и какие действия они могут сделать. Вам решать, стоит ли прилагать некоторые усилия, чтобы обратить внимание на эти особые случаи.

Но по умолчанию ваши данные должны быть в целости и сохранности.

Ответ №3:

Если данные не настолько приватны, вы можете поместить эти данные в папку assets, и вы сможете получить к ним доступ. Если это не так, вы можете сохранить его в папке applications data