连接字符串最佳实践

时间:2009-03-06 15:38:25

标签: asp.net sql connection-string

从安全角度来看,管理Web应用程序中的连接字符串的最佳方法是什么?我已经采用了几种不同的方式。我将它们存储为纯文本web.config设置键。我还创建了一个“常量”类,它为每个连接字符串提供了公共只读字符串属性。

是否有人建议以这样的方式管理连接字符串,以至于我不会担心它们会被恶意发现?我绝对愿意加密。

4 个答案:

答案 0 :(得分:3)

您可以在web.config文件中encrypt your connection strings

将类中的连接字符串作为属性或常量存储是不安全的。任何使用反汇编程序的人都可以看到你的连接字符串。

最好的方法是配置加密。

答案 1 :(得分:2)

您可以使用命令行工具aspnet_regiis加密和解密web.config的各个部分:

加密: aspnet_regiis -pef“connectionStrings”“c:\ folder \”

解密: aspnet_regiis -pdf“connectionStrings”“c:\ folder \”

答案 2 :(得分:2)

如果您可以完全控制服务器,还可以将连接字符串存储在Machine.Config中。如果您有许多应用程序都使用相同的数据库服务器,这可能很方便。

我不确定它是否值得加密,因为你必须首先访问服务器才能查看machine.config。如果您的服务器遭到入侵,Encyrption将不会阻止黑客从配置文件中提取凭据。

答案 3 :(得分:1)

@vartec:这不是一个SNAFU ..

如果使用不会破坏任何UTF8或Unicode编码的标准.NET加密机制对IIS进行加密,IIS确实可以读取加密文本。微软也鼓励这是一种最佳做法。

您可以看到有关加密连接字符串的示例:

“如何:使用数据源控件时保护连接字符串”

http://msdn.microsoft.com/en-us/library/dx0f3cf2.aspx