0

我需要保护我的Web.config文件免受恶意用户访问我们的网络服务器和团队中的初级开发人员。我曾经RsaProtectedConfigurationProvider成功地加密和解密我们的文件。但是,解密连接字符串就像从我的应用程序中访问它一样容易,无论它是否加密

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

如何保护我的连接字符串以避免像这样的变通办法?

4

3 回答 3

1

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

要进行此类保护,您应该使用此连接字符串围绕标准库编写自己的包装器,这将解密来自 webconfig 的连接字符串。而且你应该保护你的包装器不被像 Sentinel Hasp 这样的东西反编译。如果您不保护包装器,那么获取加密算法和解密连接字符串将很简单。

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

于 2013-03-29T10:35:36.800 回答
1

您可以阅读此链接secure string connection,了解 msdn 推荐的解决方案

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

于 2013-03-29T10:38:32.840 回答
1

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

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

正如前面的答案中所述,将您的开发环境与生产环境分开 - 可能只有生产环境中的生产配置转换

于 2013-03-29T12:11:49.460 回答