2015-10-18 9 views
1

У меня есть Global Variable в моем приложении. Это то, что я не хочу хранить, но к которому пользователь должен иметь доступ, пока приложение работает. Все работает.Последствия глобальной переменной опасности

Вопрос в том, какие последствия для безопасности используют глобальная переменная? Доступен ли он из других приложений?

ответ

1

Доступ к глобальным переменным другим приложениям недоступен, единственный случай, если у вас есть внедренные устройства, а некоторые вредоносные приложения (низкоуровневые) могут получить доступ к памяти, создать дамп памяти, используемой вашим приложением, и выполнить поиск переменной, но я не уверен, что это будет легко даже при использовании root.

Но любой может декомпилировать ваш файл APK в код smali и легко найти эту переменную.
Если вы действительно чувствительны, вы можете защитить его.

  1. Зашифруйте его подписью приложения и когда вам нужно его расшифровать. Но он все равно может быть взломан через получение открытого ключа из подписи приложения и так далее.

  2. Не храните его на устройстве (внутри вашего приложения, как глобальная переменная) вообще, проанализируйте эту переменную с сервера, кроме того, используя SSL-соединение.

  3. По умолчанию общие настройки недоступны другим приложениям, а также базе данных, если вы не используете Content Provider. Но получить данные приложения с корневым доступом довольно легко.

Я бы предпочел второй вариант, все, что хранится на устройстве, можно получить гораздо проще, чем если оно хранится во внешнем хранилище.

Но даже если вы анализируете данные с сервера, имейте в виду, что вступают в действие различные сетевые атаки.

Также, если данные (переменные) одинаковы для всех приложений, и если украдены все доступные ресурсы, рассмотрите возможность использования чего-то вроде временного токена или другого механизма с истечением срока действия.

P.S.

Android работает под управлением ядра на основе Linux, применим весь защищенный механизм. Таким образом, каждый процесс имеет собственное адресное пространство памяти и не знает о каком-либо другом процессе в системе (как правило).

+0

Да, все данные уже зашифрованы, спасибо! – JAPK

+0

Добро пожаловать. Если у вас есть больше вопросов, пожалуйста, не стесняйтесь спрашивать. Обновлено мое сообщение. – CROSP

1

Нет, глобальная переменная не может быть доступна из другого приложения.

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