Статьи

Простые советы по обеспечению безопасности Android-приложения

Источник: http://www.oneclickroot.com/wp-content/uploads/2012/10/Android-security.jpg

Источник: http://www.oneclickroot.com/wp-content/uploads/2012/10/Android-security.jpg

Android имеет встроенные в операционную систему функции безопасности, которые значительно снижают частоту и влияние проблем безопасности приложений, но, как разработчик приложений, наша задача — защищать приложения. Уровень безопасности зависит от типа приложения и домена. Есть несколько аспектов безопасности, которые мы не должны забывать. Я собираю эти общие советы в этой статье.

Здесь я перечислю наиболее распространенные вещи, которые разработчики должны позаботиться о защите приложения.

  1. Не храните личные или конфиденциальные данные на SDCard. Чтобы сохранить файл во внутреннем хранилище, используйте следующие методы в закрытом режиме (Context.MODE_PRIVATE) openFileOutput & openFileInput . Если вы действительно хотите хранить данные в SDCard, зашифруйте их. Вы найдете много библиотек шифрования. Я предпочитаю скрывать от Facebook.
  2. Ограничьте ContentProvider, используя экспортированный флаг, установленный как ложный. Это не тот случай, когда мы разрабатываем ContentProvider для обмена данными между приложениями, но ContentProvider можно разрабатывать как для одного приложения, так и для частного.
  3. 1
    <provider android:exported="false" android:name="MyContentProvider" android:authorities="com.example.mycontentprovider" />
  4. Ограничить WebView для доступа к локальным данным. HTML5 и связанные с ним технологии стали популярными при разработке приложения для мобильного веб-приложения или гибридного приложения. Для Hybrid использует WebView для отображения содержимого из локального хранилища HTML или извлечения HTML и другого содержимого с сервера. Основными проблемами безопасности для WebView являются методы setAllowFileAccess () и setAllowContentAccess () .
  5. Не передавайте конфиденциальную информацию через Broadcast & Intent. Используйте LocalBroadcastManager для широковещательных данных в процессе / приложении. LocalBroadcastManager доступен в библиотеке поддержки V4.
  6. Не печатайте конфиденциальную информацию в LogCat. Информация, такая как имя пользователя, пароль, URL-адрес веб-службы, запрос или ответ и т. Д. Подробно.
  7. Удалите ненужный журнал перед публикацией приложения.
  8. Не обрабатывайте вредоносные намерения. Перед процессом Intent, полученным в методе BroadcastReceiver onReceive, проверьте имя пакета вызывающих абонентов, действие и другую информацию.
  9. Защитите свой сервис с разрешения. Использовать выставленный флаг как ложный, когда служба разработана только для вашего приложения.
  10. Ограничить доступ к деятельности. Если действие предназначено исключительно для внутреннего использования приложения, тогда используйте экспортируемый флаг, установленный как ложный.
  11. 1
    <activity android:name=".view.MyActivity" android:exported="false"> </activity>
  12. Убедитесь, что режим отладки ложен, прежде чем публиковать APK.
  13. Шифруйте конфиденциальные данные, даже если вы храните их во внутренней памяти.
  14. Для кросс-функциональности приложения проверьте вызывающее приложение перед ответом.
  15. Правильно проверьте сертификат сервера TLS / SSL для веб-вызова HTTPS.
  16. Используйте NDK всякий раз, когда чувствуете, что в коде Java информация небезопасна, поскольку она может легко декомпилироваться. т.е. постоянный.
  17. Используйте ProGuard, который сокращает, оптимизирует и запутывает ваш код.
  18. Удалите нежелательные / неиспользуемые <пользовательские права> из AndroidManifest.xml
  19. Загрузка classes.dex вне приложения представляет собой серьезную угрозу безопасности. DexClassLoader позволяет разработчику загружать классы по требованию.

Ресурс: http://developer.android.com/training/articles/security-tips.html