【问题标题】:C# - How to safely store my ConnectionString [duplicate]C# - 如何安全地存储我的 ConnectionString [重复]
【发布时间】:2017-05-15 12:56:15
【问题描述】:

在我的应用程序中,我目前将连接字符串保存到以下区域:

Properties.Settings.Default.ConnectionString();

但是我意识到这是不好的做法,因为用户可以查看连接字符串。我在互联网上搜索了大多数答案,建议将连接字符串保存在我的app.config 文件中,但是用户仍然可以看到连接字符串,所以它仍然不安全。我想过设置 我的连接字符串到字符串并在每次启动程序时声明它,但这似乎效率低下。

保存我的连接字符串以便对用户隐藏它的最安全方法是什么?谢谢。

编辑:这是连接字符串:

Server=server.com;PORT=3306;Database=db_user;Uid=admin;Pwd=test;

【问题讨论】:

  • 什么数据库供应商?应用程序如何连接到数据库?直接地?通过应用服务器?它是否使用必须在连接字符串中的用户登录名和密码?还是它使用集成安全性(又名 Windows 安全性)?
  • 抱歉没有指定。这是我的连接字符串:Server=server.com;PORT=3306;Database=db_user;Uid=admin;Pwd=test;
  • 如果您使用的是 MS SQL Server,那么使用 集成安全性 而不是在配置文件中指定密码是一个好的开始
  • 什么数据库?如果您的应用在 Windows 平台上运行,大多数数据库供应商都允许使用 集成安全性,其中连接字符串中不需要用户 ID 和密码。
  • 不,它没有。集成安全性并不意味着每个人都使用相同的登录名,这意味着应用程序使用工作站上当前登录用户的凭据进行身份验证。因此,仍然使用特定的用户凭据访问数据库。但是,是的,使用服务帐户之类的东西来最终访问数据库总是更好(这消除了在数据库中管理用户帐户的需要),但是您需要在其他方式。

标签: c# mysql save connection-string app-config


【解决方案1】:

你可以做的是:加密配置文件中的连接字符串,并在建立数据库连接之前对其进行解密。这里有一个很好的答案:Encrypting & Decrypting a String in C#

【讨论】:

    【解决方案2】:

    如果您在项目属性的设置中存储连接元素,例如(服务器名称、数据库名称、用户和密码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2020-10-09
      • 2023-04-08
      • 2010-12-07
      • 2021-10-14
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多