首页 > 解决方案 > Xamarin 表单 (Visual Studio 2017) Android。在应用程序中存储 SQL Server 数据库凭据的安全性如何?

问题描述

我已经
1. 在 google 上搜索
2. 在stackoverflow
上 3. 在我的帖子中对我的一些建议,即不要使用从 App 到 SQL Server 的直接连接自由文本语句,而不是使用大多数推荐的 REST API 服务。

概述
在 Xamarin Forms 开发中,我发现 SQL Server 连接非常顺畅。我的主要项目是基于 Web 的 asp.net c# 和基于桌面的 vb.net,它们使用相同的托管 MS SQL Server 2012 Express(虚拟专用服务器而非共享服务器)数据库。

在 Desktop 中,我们可以选择加密 app.Config 文件,我们可以在其中存储数据库连接安全凭据。
在基于 Web 的情况下,我们有 web.config 文件,我们在其中说将凭据放在那里的安全方式。
(如果有错误请纠正我)
坦率地说,我在初始阶段尝试了包括 Microsoft Azure 在内的 REST API 服务,但它在方法或支付结构上对我来说看起来非常复杂或存在一些或其他限制。(或者说我现在在 c# 常规语句中完全灵活了)。由于我有自己的托管服务器,我不想再选择任何其他服务器。

最后我的查询
现在我将所有安全凭据存储在 .cs 中的 Xamarin Forms Class 文件夹中。

/------------------------------------------
//Connection String
//------------------------------------------
public static string appNutri_connection_string = @"data source=<IP ADDRESS>;initial catalog=<Database_Name>;user id=<user_name>;password=<pass_word>;Connect Timeout=600"

我在整个项目中使用这个 appNutri_connection_string 进行连接。
此外,当我们编译包时,我们选择在分发前首先输入密码。
不仅如此,在我们将其上传到 Google Play 之前,它还会重新检查 Hash Key 凭据各自的包名称,然后仅发布 apk。

所以请让我知道 APK 在 .cs 文件中存储凭据是多么不安全。其次,最重要的是还有其他加密凭证文件的解决方案吗?这样我就不需要在所有平台上打破我如此顺利的趋势。

这对我来说是一个非常关键的阶段,因为我仍处于产品实时实施的初始阶段。所以不想再有任何循环漏洞或错误的认知。数据(尤其是客户的)安全和隐私是我的主要任务。任何时候都不能妥协。所以请建议我完成这项任务的最佳方法。

(再次可能是一个可能重复的问题,但坦率地说,我没有找到详细的解释或信息,也没有在这里或任何谷歌搜索)

标签: sql-serverxamarin.formsvisual-studio-2017

解决方案


由于您正处于产品生命周期的初始阶段,请更改您的架构!永远不要,从外部直接连接到敏感数据库 - 在公共客户端和您的数据库之间至少放置一个前端层(例如 API)。


推荐阅读