TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.12K subscribers
Post #521 4.01K
​​Best practices для безопасности приложений
#security

Уверен, что мы все старательно подходим к безопасности написанных нами приложений, особенно когда они связаны с персональными данными наших пользователей.
Но не все знают о ресурсе от Google, где описаны годные практики, связанные с безопасностью. И главное, что туда регулярно добавляются свежие подходы. Давайте пройдёмся по некоторым из ним.

👉 опасайтесь неявных Intents. Напомню, что это такие Intents, которые позволяют показать диалог выбора приложения через который можно открыть предлагаемый файл. Типичный сценарий — это sharing файлов, когда мы выбираем нужное нам приложение из кучи вариантов. Важно осторожно относиться к ним, потому что «подписаться» на передаваемые файлы могут любые приложения.

👉 изучите разрешения на уровне подписи. Это довольно крутая штука, если вам нужно передавать данные между двумя вашими приложениями. Вы можете прописать разрешение на уровне подписи, и никакое другое приложение не получит достук к передаваемым файлам.

👉 используйте Internal Storage. Для сохранения приватной информации нельзя использовать внешнее хранилище, к которому есть доступ других приложений. Кроме того, внутреннее хранилище удалится, если пользователь захочет удалить ваше приложение.

👉 помните про приватный режим SharedPreferences. Кстати, стоит уже обратить внимание на свежий Jetpack DataStore, который скоро придёт на замену префам.

👉 проверьте ContentProvider. Если у вас есть этот компонент, то проверьте, надо ли вам отдавать данные наружу. Если нет, то пропишите флаг android:exported="false», что скроет ваши данные внутри приложения.

👉 используйте SSL-соединения. Все запросы, которые вы делаете на сервер должны выполняться через https. Кроме того, подумайте о конфигурации trust manager для сетевых запросов. Чуть больше можно почитать тут.

👉 используйте WebView с осторожностью. Важно запретить пользователю уйти куда-то вне вашего контента WebView. Помните также о Chrome Tabs, если вам нужно просто показать контент из сети, но внутри приложения.

👉 проверьте набор Permissions. Важно, чтобы ваше приложение не запрашивало тех разрешений, которые ему не понадобятся для работы. Хорошим советов тут будет использовать Intent вместо разрешений, если возможно. К примеру, есть Intent для добавления контакта в телефонную книгу, и он избавит вас от запроса WRITE_CONTACTS. Очень часто разработчики запрашивают разрешение на запись файлов, хотя им достаточно только считывать их.

👉 обновляйте зависимости. Для себя я выделил правило обновления большинства зависимостей приложения сразу после релиза. Это даст время на тестирование и поимку багов, связанных с этими обновлениями. Но всё же от обновлений больше пользы, чем вреда, ведь разработчики активно исправляют баги, в том числе и безопасности, в своих библиотеках.

Если хотите добавить ещё каких-то правил или обсудить описанные, то обязательно пишите в чат или мне.
More from @android_live
  1. Sep 29, 2026Post #1130
  2. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  3. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  4. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
  5. Sep 25, 2026Похоже, есть что посмотреть на выходных Недавно вышло интервью с Женей Вороновым Jake Whar…
  6. Sep 15, 2026Google выкатили ARTEMIS Эта инструмент, который превращает обычный текст в реальные действ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →