我有一个WPF应用程序,可以与SQL Server建立连接以检索数据。
如果用户不使用集成安全性,则可以在TextBox中写入服务器的名称以及用户名和密码。连接字符串是使用输入构建的:
public string GetConnectionString(string name, string server, bool isWindowsAuth = false, string user = null, string password = null)
{
string connectionMode = "";
if(isWindowsAuth == true)
connectionMode = "Integrated Security=True";
else
connectionMode = string.Format("User Id = {0}; Password = {1}; ", user, password);
return string.Format(ConfigurationManager.ConnectionStrings[name].ConnectionString, server, connectionMode);
}
我在学习安全性方面是新手,我正在寻找一种适当的方法来保护安全性,因为我没有检查用户输入的服务器名称和凭据,而且我想知道安全性会如何发生? XSS是可能的,或者类似的事情。
连接字符串加密不是我要指的或搜索的。
谢谢。
因为您没有将该用户输入放入数据库查询(易受sql注入)或直接放回浏览器(易受跨站点脚本的影响,因为他可以输入实际的javascript或html代码),我认为没有是安全隐患。如果用户放入了无效的凭据,则数据库连接应该根本不起作用。