提问人:Faruk Durak 提问时间:9/6/2023 更新时间:9/6/2023 访问量:47
如何在 Windows 窗体项目中安全地存储 SQL 信息?
How can I securely store SQL information in a Windows Form project?
问:
我找不到如何在 C# Windows 窗体应用程序中安全地存储 SQL 信息。
使用 .NET Reflector 等工具,代码可以以某种方式显示。
最准确、最可靠的方法是什么?
他们建议在 app.config 中将其加密。但是,解密代码必须存在于项目中。
因此,很容易看出它是如何加密的以及如何解密的。
答:
0赞
YungDeiza
9/6/2023
#1
最简单的方法是创建服务器应用程序,并通过服务器应用程序路由 DB 访问。
有一些方法可以隐藏和加密应用程序中的敏感数据,例如,通过使用 .但是,敏感数据以明文形式存在,总会有一点,而这一点将是弱点。所有加密方法只会减少敏感数据以可读格式存在的时间。SecureString
因此,使用服务器应用程序充当应用程序和客户端应用程序之间的中介是最佳解决方案。正如 @Good Night Nerd Pride 所提到的,您的服务器应用程序还需要实现身份验证,以确保只有授权用户才能访问数据库。
评论
0赞
Faruk Durak
9/6/2023
谢谢你的回答。我将研究 SecureString。我也认为我应该使用 API,但我仍然需要在代码中保留一些变量以进行 API 连接。我得再以某种方式隐藏它们,不是吗?是否建议我使用 Web API (RESTful API)?
0赞
YungDeiza
9/6/2023
澄清一下,我提到更多的是为了阻止你走这条路。它只会使攻击者更难获取敏感日期,而不是阻止它。如果您真的必须走这条路,请确保使用某种 crendentials 存储来检索凭据,而不是硬编码的配置文件。SecureString
0赞
Faruk Durak
9/6/2023
在分配和读取 SecureString 变量时,我需要再次将连接信息添加到代码中。因此,可以看出我是如何创建和使用 SecureString 变量的。通过这样做,它们可以达到相同的值。我必须从某个地方读取我定义的值,没有人应该能够看到我读取的值。
0赞
YungDeiza
9/6/2023
因此,为什么我说你应该创建一个服务器应用程序,而不是使用SecureString
评论