TGViewer
Мобильная разработка #1 Мобильная разработка #1 @developer_mobila · 3.82K subscribers
Post #1761 644
🕵️‍♂️ «Я спрятал ключ в константу»: Как Джуны дарят доступы хакерам

Вы интегрировали крутое платное API (например, карты или ИИ). Где вы храните секретный API_KEY?
Если ваш ответ: «В файле Constants.kt», «в strings.xml» или «просто текстом в классе» - у меня для вас плохие новости.

Любой школьник может скачать ваш APK или IPA файл, разархивировать его и достать ваши ключи за 5 минут с помощью базовых утилит для реверс-инжиниринга. А потом вы получите счет от сервиса на 10 000$ за чужой трафик.

То же самое касается пользовательских токенов (Bearer token). Если вы сохранили его в обычный SharedPreferences или UserDefaults - считайте, что вы написали пароль на стикере и приклеили его на монитор в коворкинге.

🛡 Как делают Мидлы (Защита секретов):

1. Правило №1: Никогда не пушьте ключи в Git!
Даже в приватный репозиторий. Используйте локальные файлы local.properties (Android) или .xcconfig (iOS), которые обязательно должны быть добавлены в .gitignore.
2. Токены пользователей (Авторизация):

• 🤖 Android: Забудьте про голый SharedPreferences. Используйте EncryptedSharedPreferences из библиотеки AndroidX Security. Он работает точно так же, но аппаратно шифрует ключи и значения через систему Android Keystore.
• 🍏 iOS: Никаких UserDefaults для токенов. Только Keychain. Данные в Keychain аппаратно зашифрованы на уровне операционной системы (Secure Enclave) и недоступны другим приложениям.

3. Глобальные API-ключи (Как их прятать):

• Уровень "Нормально": Пробрасывать ключи во время сборки через CI/CD (GitHub Actions) прямо в BuildConfig. Это уберет ключи из исходников, хотя и не защитит от декомпиляции готового приложения на 100%.
• Уровень "Параноик" (Android): Прятать ключи в C++ коде через NDK (Native Development Kit). Декомпилировать нативную C-библиотеку (.so) в десятки раз сложнее, чем байт-код Java/Kotlin.
• Уровень "Бог": BFF (Backend for Frontend). Приложение вообще не знает никаких сторонних ключей. Оно делает запрос на ВАШ сервер, а уже ваш сервер безопасно подставляет секретный ключ и идет в стороннее API.

💡 Главный совет: Относитесь к любому мобильному приложению как к потенциально скомпрометированной среде. То, что ушло на устройство пользователя, вам больше не принадлежит.

#security #android #ios #keychain #keystore #middle #development

👉 @developer_mobila
  • 👍 2
  • ❤ 1
More from @developer_mobila
  1. Sep 14, 2026Как разрабатывать приложения для iPhone на iPad Звучит как противоречие: iPad стал вполне…
  2. Aug 24, 2026🧪 Как заставить XCUITest работать с интерфейсом глубиной более 100 уровней Инженеры Циана…
  3. Jul 25, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  4. Jun 25, 2026👾 Androguard: Швейцарский нож для реверс-инжиниринга Android Если вы занимаетесь пентесто…
  5. Jun 22, 2026Живой космос на Metal: как я переписывал фон мобильной игры и поднимал FPS с 20 до 120 В м…
  6. Jun 9, 2026Александр Евтухов, Максим Вакула — Одна билд-система, чтоб править всеми Все iOS-разработч…
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 →