tgoop.com/android_live/521
Last Update:
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
. Очень часто разработчики запрашивают разрешение на запись файлов, хотя им достаточно только считывать их.
👉 обновляйте зависимости. Для себя я выделил правило обновления большинства зависимостей приложения сразу после релиза. Это даст время на тестирование и поимку багов, связанных с этими обновлениями. Но всё же от обновлений больше пользы, чем вреда, ведь разработчики активно исправляют баги, в том числе и безопасности, в своих библиотеках.
Если хотите добавить ещё каких-то правил или обсудить описанные, то обязательно пишите в чат или мне.
BY Android Live 🤖

Share with your friend now:
tgoop.com/android_live/521