首页 > 解决方案 > 在 Xamarin Forms 中存储 client_id 和 client_secret 的位置以供休息 API

问题描述

最近,我一直在解决通过获取我的 client_id 和 client_secret 在我的应用程序中可能受到危害的安全问题。

PCLAppConfig我的实现是使用插件将配置数据存储在配置文件(App.config)中。对此的概述是您将创建一个配置文件,其中构建操作作为嵌入式资源。

在我的朋友尝试对我的应用程序进行渗透测试之后,我认为这足够安全,因为它存储在配置文件中。基本上他只是做以下事情:

  1. 在 Google Play 商店中下载应用程序(Android 示例)
  2. 获取apk等价物。(他使用 Share It)
  3. 将 .apk 文件重命名为 .zip
  4. 使用反射工具打开,您将看到所有 dll 文件。然后他看到在 dll 文件(PCL 类)下他可以看到 .config 文件。

在那一刻,他知道用户不应该知道的所有机密数据。

我的问题是,如何安全地存储这些机密数据。它不应该被硬编码,因为所有代码都转换为 .dll 文件并且可以使用反射工具进行跟踪。

更新

仍然没有解决方案

标签: securityxamarin.forms

解决方案


也许您可以使用 Xamarin Essentials 的 SecureStorage

https://docs.microsoft.com/en-us/xamarin/essentials/secure-storage?tabs=android

...

try
{
  await SecureStorage.SetAsync("oauth_token", "secret-oauth-token-value");
}
catch (Exception ex)
{
  // Possible that device doesn't support secure storage on device.
}

推荐阅读