Где хранить client_id и client_secret для остальных API в Xamarin Forms - PullRequest
0 голосов
/ 29 мая 2018

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

Моя реализация хранила данные конфигурации в файле конфигурации (App.config), используя PCLAppConfig плагин.В этом разделе вы создадите файл конфигурации, действие по сборке которого было выполнено как Embedded Resource.

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

  1. Загрузите приложение в Google Play Store (пример для Android)
  2. Получите apk-эквивалент.(Он использует Share It)
  3. Переименуйте файл .apk в .zip
  4. Откройте с помощью инструмента отражения, и вы увидите все файлы DLL.Затем он видит, что под файлами dll (класс PCL) он может видеть файл .config.

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

Мой вопрос заключается в том, как надежно хранить эти конфиденциальные данные.Он не должен быть жестко закодирован, так как все коды были преобразованы в файл .dll, и его можно отслеживать с помощью Reflection Tool.

UPDATE

Все еще не решено

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Лучшим вариантом было бы получить (из вашего сервиса) ваш ключ при запуске приложения, чтобы не задавать жесткие ключи в приложении, а затем сохранить его в словаре свойств.Что-то вроде:

Application.Current.Properties ["keys"] = YourConfigurationManager.GetKeys();
0 голосов
/ 29 мая 2018

Используйте шифрование для ваших ключей.https://forums.xamarin.com/discussion/16071/encryption-decryption-in-xamarin

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