我正在保存用户的浏览器用户代理以进行统计。
如您所知,可以修改用户代理。我想知道我是否应该采取任何措施来防止SQL注入。
我正在使用存储过程进行插入。
非常感谢。
答案 0 :(得分:1)
Use parameters with stored procedures或use parameters with dynamic SQL。
以下是MSDN的示例:
SqlDataAdapter dataAdapter = new SqlDataAdapter(
"SELECT CustomerID INTO #Temp1 FROM Customers " +
"WHERE CustomerID > @custIDParm; SELECT CompanyName FROM Customers " +
"WHERE Country = @countryParm and CustomerID IN " +
"(SELECT CustomerID FROM #Temp1);",
connection);
SqlParameter custIDParm = dataAdapter.SelectCommand.Parameters.Add(
"@custIDParm", SqlDbType.NChar, 5);
custIDParm.Value = customerID.Text;
SqlParameter countryParm = dataAdapter.SelectCommand.Parameters.Add(
"@countryParm", SqlDbType.NVarChar, 15);
countryParm.Value = country.Text;
connection.Open();
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
答案 1 :(得分:0)
使用准备好的声明。确保对所有SQL操作使用预准备语句,即使数据来自数据库。