как сохранить ключи API в приложении React Native - PullRequest
0 голосов
/ 19 января 2020

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

В моем приложении я вызываю некоторые API-интерфейсы, которые может / могло бы использовать любое другое приложение, например, Google Maps через библиотеку реагировать на родные карты. Мои ключи API сохраняются в файлах, которые используются при фактической сборке приложения, info.plist и AppDelegate.m (сейчас строится приложение iOS). Я думал, что это будет достаточно безопасно. Но недавно я обнаружил, что это не так.

Прочитав несколько статей о том, как избавиться от секретной информации из нативных приложений, я изо всех сил пытался найти выход. Мысль об использовании .env, получение ключей API от внутреннего сервера и т. Д. c. не может использовать .env и не может найти способ вызывать API, посылая ключи API (не содержащие их в качестве метаданных сборки).

Так вот мой вопрос. Как я могу сохранить свои секреты безопасными для реакции на нативное приложение?

1 Ответ

0 голосов
/ 19 января 2020

Я думаю, это зависит от того, о каком секрете и API мы говорим.

С помощью Google Maps можно ограничить использование определенными c приложениями или доменами, что позволяет безопасно связывать ключ в приложении, подробнее здесь: https://developers.google.com/maps/api-key-best-practices#application_restriction

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...