#android #parsing #security
Вопрос:
Поскольку безопасность является серьезной проблемой для мобильных инженеров, любой release apk
из них может быть легко декомпилирован и проверен важными ключами или данными и т.д… при использовании Proguard
строковые литералы присутствуют как есть и могут быть извлечены. Существуют способы преодоления этой проблемы, такие как использование криптографии или собственных кодов. Мой вопрос заключается в том, что при использовании gson
для анализа сетевого ответа можно ли в любом случае использовать динамический ключ @SerializeName("header")
, я знаю , что это приведет к ошибке An annotation argument must be a compile-time constant
при динамическом использовании ключа. ИЛИ любой другой способ анализа сетевого ответа, в котором ключи объектов не должны отображаться при обратной разработке приложения.
data class SomeResponse(
@SerializedName("header") <- //this will give compile-time error when using dynamic key.
val header: String)
P.S. Пожалуйста, не отвечайте на вопросы, связанные с DexGuard или ручным анализом JSON.
Комментарии:
1. интересно, это действительно такой большой риск для безопасности ? теоретически, разве кто-то не смог бы просматривать ваши сетевые запросы и ответы в любом случае, если бы захотел ?
2. Мы хотим скрыть ключи, чтобы злоумышленник не смог даже получить намек на сетевой запрос/ответ
3. я сомневаюсь, что это то, чего вы когда-либо сможете достичь с помощью приложения, потому что любая логика отображения также будет вполне очевидной и логичной для тех, кто декомпилирует