我刚刚完成了我的应用程序并完成了它的构建。一切都很好。
然后我注意到文件夹中的XML配置文件,所以我点击它。
就是这样,我的整个连接字符串以及我的远程sql server ip地址,登录用户名和登录密码,所有人都可以看到。
我尝试删除XML配置文件并运行程序,它只是在一个带有默认数据库的文件夹中创建一个App_Data文件夹。
有没有办法隐藏XML配置文件或使其无法读取,因为它包含我的所有连接信息。
感谢。
答案 0 :(得分:3)
查看有关保护连接字符串的MS文章:
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/protecting-connection-information
或者,将连接字符串硬编码到您的应用程序中(注意:恶意用户可以相当容易地对.net应用程序进行反向工程),或者尽可能使用集成安全性。
答案 1 :(得分:1)
您可以加密它:http://chiragrdarji.wordpress.com/2008/08/11/how-to-encrypt-connection-string-in-webconfig/
或尽可能使用集成安全性。
答案 2 :(得分:1)
任何隐藏连接字符串的尝试都会让您和任何攻击者都难以访问。这并不罕见,但不是很安全,并且确保定期密码轮换也存在问题。
如果可以,请切换到集成安全性。 (在连接字符串中包含Integrated Security=SSPI
,但没有用户名或密码。)连接将使用您自己的用户帐户(或运行代码的帐户)创建,假设
答案 3 :(得分:1)
无论你做什么,专用调试器都能看到你的连接字符串。
请记住,如果您可以在调试会话中查看Connection.ConnectionString
,那么使用WinDBG或Visual Studio的用户也是如此。因此,即使您加密文件,用户也可以让您解密,然后检查明文值。
这就是为什么许多需要服务器信息的客户端应用程序(尤其是移动应用程序)通常不直接连接到数据库。相反,他们通常会连接到服务。然后,您根据您的服务对用户进行授权和身份验证。