security - 在 Xamarin Forms 中存储 client_id 和 client_secret 的位置以供休息 API
问题描述
最近,我一直在解决通过获取我的 client_id 和 client_secret 在我的应用程序中可能受到危害的安全问题。
PCLAppConfig
我的实现是使用插件将配置数据存储在配置文件(App.config)中。对此的概述是您将创建一个配置文件,其中构建操作作为嵌入式资源。
在我的朋友尝试对我的应用程序进行渗透测试之后,我认为这足够安全,因为它存储在配置文件中。基本上他只是做以下事情:
- 在 Google Play 商店中下载应用程序(Android 示例)
- 获取apk等价物。(他使用 Share It)
- 将 .apk 文件重命名为 .zip
- 使用反射工具打开,您将看到所有 dll 文件。然后他看到在 dll 文件(PCL 类)下他可以看到 .config 文件。
在那一刻,他知道用户不应该知道的所有机密数据。
我的问题是,如何安全地存储这些机密数据。它不应该被硬编码,因为所有代码都转换为 .dll 文件并且可以使用反射工具进行跟踪。
更新
仍然没有解决方案
解决方案
也许您可以使用 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.
}
推荐阅读
- java - Problem adding queues using SmartLifecycle at runtime
- installation - 带有用户输入的 WIX 设置
- angular - 添加条件以停止 flatmap 的第二次 HTTP 调用
- excel - 类型与工作簿不匹配。打开
- asp.net - 实体框架 6:“在应用程序配置文件中找不到连接字符串。” 在 asp.net 核心应用程序中引用 .net 框架 dll 时
- caching - AWS 中的 Redis 缓存问题
- postgresql - 重建节点后无法在corda中创建流,postgresql数据库
- jquery - 通过 Data.xml 自动完成问题
- android - ARCore:获取网格顶点的世界坐标
- selenium - 如何使用 Selenium for python 3.7 在 excel 中插入在线表格中的数据?