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

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

【问题讨论】:

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

标签: c# mysql wpf


【解决方案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 设置的最大优点是易于使用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-12-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-29
            • 1970-01-01
            相关资源
            最近更新 更多