Куда девать API-ключ? Ресурсы, метаданные в Манифесте или статическая переменная? [дубликат]


На этот вопрос уже есть ответ здесь:

Я пытаюсь выяснить, что является лучшей практикой для добавления ключа API в мое приложение для Android.

- Некоторые люди рекомендуют использовать meta-data в файле Manifest.xml - link. Который заставило меня почувствовать, что это лучше, чем добавление ключа в файлы resources.

<meta-data android:value="key_value" android:name="api_key"></meta-data>

- Некоторые люди говорят, добавьте его в resources - ссылка

<string name="api_key">api_key_value</string">

- мы можем просто добавить его в код класса

api.configue("api_key_value");

- Некоторые люди говорят, что добавление ключей в файлы Manifest.xml и resources позволит другим приложениям прочитать его - Ссылка.

<string name="foo">bar</string">

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

Я спрашиваю о наилучшем подходе и наилучшей практике для этого.

Заранее благодарю.

1 9

1 ответ:

Я не понял вопроса, потому что, похоже, вы уже определились, что делать с ключом API (в сервере).

Отличная статья о возможных укрытиях API ключей в Android: http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/

В вашем случае, поскольку вы собираетесь получить ключ во время выполнения с сервера, я бы следовал #4: API key Public/private key exchange из статьи, но это может быть громоздким.

Также я бы рассмотрел подход NDK (#3 из статьи ). Это довольно простой подход на стороне клиента.