#Security #BestPractices



Developing Secure Android Apps от Ahmed Abd-Elmeged



Хорошая статья с обзором наиболее популярных уязвимостей в плане безопасности приложение и как их стоит избегать.



В статье вы найдете следующий рекомендации:

👉 В релиз только с Proguard или R8

👉 Доступ к любым API должен осуществляться защищено. Например, используйте API ключ.

👉 Все ключи должны храниться в защищенном месте. Например, можно хранить ключи приложения в нативном коде. Ключи, получаемый динамически, лучше хранить в KeyStore.

👉 Используйте только HTTPS!

👉 Не используйте SharedPreferences для важных данных: ключей, паролей и пр.

👉 Проверяйте что попадает в логи релизной сборки приложения

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

👉 Не передавайте данные в Intent, напр. через Broadcast Receiver. Передача данных между приложениями должна осуществляться через ContentProvider, либо LocalBroadcastManager, для обмена данными в рамках одного приложения.

👉 WebView таит много опасностей внутри себя

👉 Обновляйте ваши зависимости

👉 Доступ к Service и ContentProvider должен осуществляться только при наличие permission

👉 Шифруйте данные на внешнем хранилище, которые вы не можете разместить на внутреннем и валидируйте перед их использованием из приложения.

👉 Старайтесь минимизировать запрос личныз данных GDPR не дремлет!

👉 Рутованные устройства могут менять поведение устройств, поэтому часть функционала на них стоит отключать.Например, вам не будут давать возможности производить оплату или использовать приложения, которые имеют высокие требования к защите.

👉 Запрашивайте как можно меньше permission.