从安全角度来看,管理Web应用程序中的连接字符串的最佳方法是什么?我已经采用了几种不同的方式。我将它们存储为纯文本web.config设置键。我还创建了一个“常量”类,它为每个连接字符串提供了公共只读字符串属性。
是否有人建议以这样的方式管理连接字符串,以至于我不会担心它们会被恶意发现?我绝对愿意加密。
答案 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确实可以读取加密文本。微软也鼓励这是一种最佳做法。
您可以看到有关加密连接字符串的示例:
“如何:使用数据源控件时保护连接字符串”