2016-12-30 39 views
2

我目前使用ConfigurationManager中,以保护我的凭据C#的方式来保护

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

如果有任何更好地保护我的服务器证书的方式过于它甚至不值得的时候,我在想,我的数据库凭据试图突破。我已经看到,有些人通过网站使用api来检索证书或其他内容。但不完全确定这将如何工作。

+0

您是否监视谁可以访问您的生产服务器?你是否希望加密内部人员的凭证? –

+0

@RossBush目前我正在使用本地服务器,但是我计划在完成服务器时购买服务器,但是我可能会在购买服务器后不再购买服务器。 – Vince

+0

您可以在配置部分使用加密,但是,任何可以在代码中设置断点的人都可以看到凭据。你最好是担任安全凭证的生产箱门卫。 https://msdn.microsoft.com/en-us/library/zhhddkxy.aspx –

回答

2

这一切都取决于你的关注程度。

级别0:不执行任何

大多数人添加凭据在Web /应用程序配置连接字符串和这是够好。只有那些窃取凭证的人才能够访问服务器。

等级1:加密

为了防止那些谁对你的工作凭证可以加密的连接字符串:See MSDN for Connection String Encryption

等级3:自定义

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

0

鉴于您的评论:

但我计划购买一台服务器,当我完成

除了加密连接字符串,实际的配置文件是不是你开始固定环境。基本上,应用程序确实需要连接。所以在某些时候,即使使用远程API(您需要...连接设置..),该字符串也必须在某处可用。

我的建议:

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

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

要实现这个目标的基本系统的一个很好的例子是Octopus Deploy