16

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

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

4

4 回答 4

3

您可以在 web.config 文件中加密连接字符串

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

最好的方法是配置加密。

于 2009-03-06T15:44:18.050 回答
2

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

加密:aspnet_regiis -pef "connectionStrings" "c:\folder\"

解密:aspnet_regiis -pdf "connectionStrings" "c:\folder\"

于 2009-03-06T15:46:27.467 回答
2

如果您可以完全控制服务器,您还可以将连接字符串存储在 Machine.Config 中。如果您有很多应用程序都与同一个数据库服务器一起工作,这会很方便。

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

于 2009-03-06T15:57:10.653 回答
1

@vartec:这不是一个 SNAFU ..

如果您使用不会破坏任何 UTF8 或 Unicode 编码的标准 .NET 加密机制对其进行加密,IIS 确实可以读取加密文本。Microsoft 也鼓励将此作为最佳实践。

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

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

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

于 2009-03-06T15:52:19.933 回答