Android имеет встроенные в операционную систему функции безопасности, которые значительно снижают частоту и влияние проблем безопасности приложений, но, как разработчик приложений, наша задача — защищать приложения. Уровень безопасности зависит от типа приложения и домена. Есть несколько аспектов безопасности, которые мы не должны забывать. Я собираю эти общие советы в этой статье.
Здесь я перечислю наиболее распространенные вещи, которые разработчики должны позаботиться о защите приложения.
- Не храните личные или конфиденциальные данные на SDCard. Чтобы сохранить файл во внутреннем хранилище, используйте следующие методы в закрытом режиме (Context.MODE_PRIVATE) openFileOutput & openFileInput . Если вы действительно хотите хранить данные в SDCard, зашифруйте их. Вы найдете много библиотек шифрования. Я предпочитаю скрывать от Facebook.
- Ограничьте ContentProvider, используя экспортированный флаг, установленный как ложный. Это не тот случай, когда мы разрабатываем ContentProvider для обмена данными между приложениями, но ContentProvider можно разрабатывать как для одного приложения, так и для частного.
- Ограничить WebView для доступа к локальным данным. HTML5 и связанные с ним технологии стали популярными при разработке приложения для мобильного веб-приложения или гибридного приложения. Для Hybrid использует WebView для отображения содержимого из локального хранилища HTML или извлечения HTML и другого содержимого с сервера. Основными проблемами безопасности для WebView являются методы setAllowFileAccess () и setAllowContentAccess () .
- Не передавайте конфиденциальную информацию через Broadcast & Intent. Используйте LocalBroadcastManager для широковещательных данных в процессе / приложении. LocalBroadcastManager доступен в библиотеке поддержки V4.
- Не печатайте конфиденциальную информацию в LogCat. Информация, такая как имя пользователя, пароль, URL-адрес веб-службы, запрос или ответ и т. Д. Подробно.
- Удалите ненужный журнал перед публикацией приложения.
- Не обрабатывайте вредоносные намерения. Перед процессом Intent, полученным в методе BroadcastReceiver onReceive, проверьте имя пакета вызывающих абонентов, действие и другую информацию.
- Защитите свой сервис с разрешения. Использовать выставленный флаг как ложный, когда служба разработана только для вашего приложения.
- Ограничить доступ к деятельности. Если действие предназначено исключительно для внутреннего использования приложения, тогда используйте экспортируемый флаг, установленный как ложный.
- Убедитесь, что режим отладки ложен, прежде чем публиковать APK.
- Шифруйте конфиденциальные данные, даже если вы храните их во внутренней памяти.
- Для кросс-функциональности приложения проверьте вызывающее приложение перед ответом.
- Правильно проверьте сертификат сервера TLS / SSL для веб-вызова HTTPS.
- Используйте NDK всякий раз, когда чувствуете, что в коде Java информация небезопасна, поскольку она может легко декомпилироваться. т.е. постоянный.
- Используйте ProGuard, который сокращает, оптимизирует и запутывает ваш код.
- Удалите нежелательные / неиспользуемые <пользовательские права> из AndroidManifest.xml
- Загрузка classes.dex вне приложения представляет собой серьезную угрозу безопасности. DexClassLoader позволяет разработчику загружать классы по требованию.
1
|
< provider android:exported = "false" android:name = "MyContentProvider" android:authorities = "com.example.mycontentprovider" /> |
1
|
< activity android:name = ".view.MyActivity" android:exported = "false" > </ activity > |
Ресурс: http://developer.android.com/training/articles/security-tips.html
Ссылка: | Простые советы по обеспечению безопасности приложения Android от нашего партнера JCG Кетана Пармара в блоге KP Bird . |