使用ASP.net保存用户代理时避免SQL注入

时间:2011-09-23 23:27:04

标签: asp.net sql-injection

我正在保存用户的浏览器用户代理以进行统计。

如您所知,可以修改用户代理。我想知道我是否应该采取任何措施来防止SQL注入。

我正在使用存储过程进行插入。

非常感谢。

2 个答案:

答案 0 :(得分:1)

Use parameters with stored proceduresuse 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操作使用预准备语句,即使数据来自数据库。