Android Broadcast
13.8K subscribers
3.06K photos
211 videos
9 files
5.23K links
Подборка новостей и статей для Android разработчиков.

Обсуждение @android_broadcast_talks
Наши медиа https://taplink.cc/android_broadcast
Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
Доступ к хранилищу без запроса разрешений - это будущее Android (EN, 5 мин)

В Android 13 пометили как deprecated разрешения на доступ к файловой системе, READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE. На замену это пришли новые API:
👉 Начиная с Android 10 не нужны разрешения для сохранения файлов в общее хранилище
👉 Используйте системные пикеры файлов, которые возможно вызвать с помощью Intent задав action в ACTION_GET_CONTENT или ACTION_OPEN_DOCUMENT
👉 Используйте Photo Picker, который был представлен в Android 13 и перенес на Android 11+ (1 мая 2022)

#android13 #security
Encrypted DataStore - Jetpack DataStore но с шифрованием данных с помощью Jetpack Security и Tink. В репе вы найдете руководство по миграции. Автор либы есть в @android_broadcast, так что можете задать вопросы в комментариях

#security
Memory Safe Languages in Android 13

Google делится тем что за период с 2019 до 2022 количество уязвимостей безопасности памяти было уменьшено с 223 до 85. В компании обратили внимание на то что увеличение количества Rust кода коррелирует с уменьшением количества проблем с памятью. В статье рассказывать про безопасность C/C++ кода

#android13 #security
Вы когда-нибудь задумывались что злоумышленники могут проникнуть в ваш Gradle билд? Каким образом? Подменить Gradle Wrapper, заменить сам дистрибутив Gradle, подмена зависимостей и другие способы

В статье разработчики системы сборки рассказывают как убедиться в том что никто не подменил компоненты сборки, зависимости и др. части

#gradle #security
Improving user privacy by requiring opt-in to send X-Requested-With header from WebView

Заголовок X-Requested-With (XRW) содержит в себе название Android приложения из которого отправляется любой запрос в WebView. Теперь этот заголовок будет посылаться только если разработчик запросит это явно.

#security #webview
Стартует Неделя Приватности для Android разработчиков. Что будет:
👉 Обновленная страница "Privacy & Security" на официальном сайте разработчиков
👉 Новая Codelab по приватности
👉 Cheatsheet по основным принципам приватности
👉 Рекомендуется посмотреть это и это видео

Все новости я вам буду вещать в @android_broadcast

#security
Инструкция (EN, 11 мин) по интеграции passkey с помощью Jetpack Credential Manager API. Passkeys - это новое поколение стандарта индустрии по авторизации без пароля.

#security
Интересная статья (13 мин) с разбором устройства системы разрешений в Android. Как раз недавно решил сделать ролик на такую тему, а тут такой материал! Также добавили туда лучшие практики по работе с разрешениями.

#security
Как эволюционировали уязвимости в приложениях для Android (12 мин) - историческая ретроспектива уязвимостей мобильных приложений под Android

#security
Google активно агитирует за интеграцию Passkeys - нового индустриального подхода к авторизации без паролей на основе биометрии. Подробности читайте тут

Может есть уже из вас те кто интегрировал это в свои приложения и готов поделиться этим опытом? Пишите в комментариях

#security
Firebase имеет возможность проверять и помогать защищать ваше приложение с помощью Firebase App Check, включающая несколько инструментов:
👉 DeviceCheck для Apple платформы
👉 Play Integrity для Google Play

Нас будет интересовать Play Integrity, которая дает возможность проверять что ваше приложение не было атаковано и в нем ничего не заменили. В статье (5 мин) будет гайд

#firebase #googleplay #security
Jetpack Credential Manager выходит в Beta, а это значит что уже API финализировано. Библиотека позволяет встроить механизм авторизации без паролей с помощью биометрии - passkeys

Android 14 имеет расширенную поддержку и может работать с несколькими менеджерами паролей.

#jetpack #security #android14
Google Play Protect будет предлагать пользователю проверить приложение, которые система никогда не проверяла ранее. Анализ будет выполняться н устройстве с отправкой частей на сервера. Раскатка фичи будет происходить постепенно на всех пользователей.

Источник тут

#googleplay #security
This media is not supported in your browser
VIEW IN TELEGRAM
Google активно продвигает технологию Passkeys - более простая для пользователей и надежнее по безопасности, позволит отказаться от двухфакторной авторизации (за которую платить приходится)

Если вы хотите узнать как интегрировать ее в Android приложение, то Google выпустила курс на эту тему

#security
1 ноября станет доступен публичный релиз Credential Manager для упрощения авторизации в приложениях и на сайтах, а также делая её надёжнее. Это станет доступно благодаря поддержки Passkeys в версии 1.2.0

#security #jetpack
Руководство по миграции с FIDO2 на Jetpack Credential Manager

Почему стоит мигрировать? Потому что Jetpack Credential Manager
🔐 Поддержка Passkey
🔐 Несколько методов авторизации
🔐 Поддержка сторонних менеджеров паролей
🔐Единый UI/UX авторизации для пользователей

#security #jetpack
Обзор и сравнение актуальных инструментов шифрования в Android (12 мин)
1️⃣ В лоб - самостоятельное шифрование примитивами из Android SDK (AES Encryption)
2️⃣ EncryptedFile и EncryptedSharedPreferences из Jetpack

Помимо сравнения автор рассказывает, как они в команде решают проблемы с шифрованием на Android-устройствах

#security
Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений (11 мин)

Новый тип атак - подмена библиотек в репозитории из-за некоректных настроек и логики работы Maven и Gradle. Все подробности атаки в статье

#security
Forwarded from Kotlin Adept Notes (Alex Panov)
Нашли серьезную уязвимость в Jetpack Navigation Compose, которая позволяет открыть любой экран в приложении, даже если там нет явных диплинков ⚠️

Эксплуатируется она максимально просто, достаточно знать имя пакета и название маршрута в графе навигации:


Intent().apply {
setClassName("your.package", "your.package.MainActivity")
data = Uri.parse("android-app://androidx.navigation/YOUR_DESTINATION")
startActivity(this)
}


Как защититься

1. Разумеется лучший вариант не использовать данную навигацию, можете посмотреть мой пост со сравнением библиотек навигации для Compose и выбрать подходящую
2. Если в приложении не используются диплинки, можно частично решить проблему перетерев data в определенном intent:


val intentData = intent.dataString
if (intentData != null && intentData.startsWith("android-app://androidx.navigation")) {
intent.setData(null)
}


#Security #Compose
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM