C#保护我的数据库凭据的方法

C#保护我的数据库凭据的方法,c#,C#,我当前正在使用ConfigurationManager保护我的凭据 string _conStr = ConfigurationManager.ConnectionStrings["fluxConnection"].ConnectionString; 我想知道是否有更好的方法来保护我的服务器凭据,甚至不值得尝试突破。我看到一些人通过网站使用api来检索凭证或类似的东西。但也不确定这到底是怎么回事。这完全取决于你的担忧程度 0级:什么都不做 大多数人在web/app配置中将凭据添加到连接字符串

我当前正在使用ConfigurationManager保护我的凭据

 string _conStr = ConfigurationManager.ConnectionStrings["fluxConnection"].ConnectionString;

我想知道是否有更好的方法来保护我的服务器凭据,甚至不值得尝试突破。我看到一些人通过网站使用api来检索凭证或类似的东西。但也不确定这到底是怎么回事。

这完全取决于你的担忧程度

0级:什么都不做

大多数人在web/app配置中将凭据添加到连接字符串中,这就足够了。唯一会窃取凭据的人是那些已经有权访问服务器的人

级别1:加密

要保护凭据不受为您工作的人员的攻击,可以加密连接字符串:

第3级:自定义

您可以创建从另一个数据库读取加密数据库凭据并以其加密形式返回给您的。然后从代码中调用web服务,解密它为您提供的凭据,从而构建连接字符串。

给出您的评论:

但我确实计划在完工后购买一台服务器

除了加密连接字符串外,实际的配置文件不是保护环境的起点。基本上,应用程序确实需要连接。因此,在某些情况下,即使在使用远程API(您需要…连接设置…)时,字符串也必须在某个地方可用

我的建议是:

在部署期间更改配置设置。这样,开发环境中就不会出现生产信息

我希望您的生产环境在最终到达配置文件之前还有大量其他安全措施


实现这一点的基本系统的一个很好的例子是。

您是否监控谁可以访问您的生产服务器?你想对内部人员的凭据进行加密吗?@RossBush我目前正在使用local,但我确实计划在完成后购买服务器,但我最好在购买服务器后完成此操作,而不是在购买服务器后再进行此操作。不过,你可以在配置部分使用加密,任何可以在代码中设置断点的人都可以看到凭据。你最好只是一个有安全凭证的生产箱的看门人。您可以只加密连接字符串:@RossBush User的数据已经加密,但我正在尝试找到最好的方法,使黑客极难获取我的数据库凭据。