我应该在哪里存储数据库连接字符串? [关闭]

Posted

技术标签:

【中文标题】我应该在哪里存储数据库连接字符串? [关闭]【英文标题】:Where Should I Store a database Connection String? [closed] 【发布时间】:2011-05-09 18:56:54 【问题描述】:

我用 C# + WPF + mysql 创建了一个应用程序。存储数据库连接字符串的最佳(最安全)方法是什么?

【问题讨论】:

它需要安全吗?如果您的服务在您的服务器上运行,为什么要保护连接字符串? (我假设您将其存储在应用程序配置中) 应用是如何部署的?是每个用户都有不同的连接字符串,还是所有用户都有一个连接字符串? 【参考方案1】:

将其存储在您的 App.config 文件中并始终对其进行加密。 This link 将向您展示如何加密部分配置文件。

【讨论】:

【参考方案2】:

你可以store connections strings in the configuration file。如有必要,您可以保护它们。

【讨论】:

如果我将连接字符串添加到 app.config - 这对我的连接字符串安全吗? 任何有权访问此 app.config 的人都可以读取可能包含密码等敏感信息的连接字符串。您可以加密此部分以提高安全性。 通过项目访问?还是undebagom?如何加密? app.config 文件与可执行文件一起部署,因此任何有权访问工作目录的人都可以打开此文件。就加密而言,我在回答中链接到的文章包含有关如何实现这一点的大量信息。 -1。我会为此解雇你。此文件是在更新时自动安装和卸载的文件。它是最糟糕的地方。您将代码放入另一个文件并在其中引用它,或者您使用自己的配置文件,这是我在过去 10 年中看到的每个项目所做的。【参考方案3】:

或者 - 注册表。您不存储它们的一个地方是 app.config 文件(whatever.exe.config),因为它只存在一次,并且程序文件夹不是用户可以更改的。每个用户的设置都不应该存在。

【讨论】:

【参考方案4】:

如果应用程序在服务器上运行,我会推荐 machine.config 文件并在 Fernando 推荐的同一个庄园中对其进行加密。如果要分发应用程序,那么我将在 app.config 中存储它们。

【讨论】:

【参考方案5】:

嗯,我总是遵循一种做法。每当我在 SL 或 WPF 中做某事时,我总是将服务层放在 SL/WPF 和数据库之间。

【讨论】:

【参考方案6】:

您可以使用使用 Visual Studio 时可用的 visual studio settings / 属性。它们使用起来非常简单,如果您使用用户设置,它会保存在用户的应用数据目录中,因此它是半隐藏的,远离修补。如果你愿意的话,你所要做的就是某种形式的加密来完全锁定它。

我认为 Visual Studio 设置的最大优点是易于使用。

【讨论】:

以上是关于我应该在哪里存储数据库连接字符串? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

怎么取消远程桌面连接,关闭的时候弹出“断开连接终端服务会话”框

实体框架 - 分层设计 - 将连接字符串放在哪里?

Azure 门户中的 Azure 存储帐户连接字符串在哪里?

使用 mocha 进行所有测试后在哪里删除数据库并关闭连接

释放elasticsearch连接

ODBC 连接凭据如何存储在 MS Access 中? [关闭]