如何保护其他开发人员的web.config连接字符串?

时间:2013-03-29 10:22:19

标签: c# asp.net web-config

我要求保护我的Web.config文件免受访问我们的网络服务器的恶意用户的侵害。团队中的初级开发人员我使用RsaProtectedConfigurationProvider成功加密了&解密我们的文件。但是,对连接字符串进行decypting就像使用我的应用程序访问它一样容易,无论它是否加密

protected void btnShowConnectionString_Click(object sender, EventArgs e)
{
    lblMessage.Text = WebConfigurationManager.ConnectionStrings["MyTestConnection"].ConnectionString;
}

如何保护我的连接字符串以避免像这样的解决方法?

3 个答案:

答案 0 :(得分:1)

使用标准解决方案无法做到这一点。

要进行此类保护,您应该使用此连接字符串在标准库周围编写自己的包装器,这将解密来自webconfig的连接字符串。 你应该保护你的包装器免受Sentinel Hasp之类的反编译。如果不保护包装器,则可以很容易地获得加密算法并解密连接字符串。

但是不要向开发人员webconfig编写生产连接字符串会更简单。在部署到生产环境时,使用开发人员环境开发和编写生产环境连接字符串。

答案 1 :(得分:1)

您可以阅读有关secure string connection的链接,msdn

推荐的解决方案

link:http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx

答案 2 :(得分:1)

恕我直言,你提到的“解决方法”并不是真正的解决方法,而是它的本质。

您的应用程序(网络或其他)必须能够对信息进行解密,以便我可以实际建立连接。除非你对你的SQL服务器使用Windows身份验证,否则user / pwd总是“存在”...我有一个唠叨的问题是为什么/如何在你的应用程序中存在这样的代码(首先)?

如前面的答案中所述,将开发环境与生产分开 - 可能只在生产环境中具有生产配置transforms