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

发布于 2024-12-06 15:29:20 字数 116 浏览 0 评论 0原文

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

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

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

非常感谢。

I'm saving the browser user-agent of my users for stats purposes.

As you already know, user-agent can be modified. I would like to know if I should do anything to protect against SQL Injection.

I'm using Stored Procedures for inserting.

Many thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

姜生凉生 2024-12-13 15:29:20

在存储过程中使用参数使用参数使用动态 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);

Use parameters with stored procedures or use parameters with dynamic SQL.

Here's the example from 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);
薄凉少年不暖心 2024-12-13 15:29:20

使用准备好的语句。确保对所有 SQL 操作使用准备好的语句,即使数据来自数据库。

Use a prepared statement. Make sure you use a prepared statement for all SQL operations, even if the data comes out of the database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文