我要求保护我的Web.config
文件免受访问我们的网络服务器的恶意用户的侵害。团队中的初级开发人员我使用RsaProtectedConfigurationProvider
成功加密了&解密我们的文件。但是,对连接字符串进行decypting就像使用我的应用程序访问它一样容易,无论它是否加密
protected void btnShowConnectionString_Click(object sender, EventArgs e)
{
lblMessage.Text = WebConfigurationManager.ConnectionStrings["MyTestConnection"].ConnectionString;
}
如何保护我的连接字符串以避免像这样的解决方法?
答案 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。