為了防止SQL注入攻擊,我們可以使用參數化查詢來替代直接拼接SQL語句。在C#中使用參數化查詢可以通過SqlCommand對象的Parameters屬性來設置參數值。以下是一個示例代碼:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True;";
string query = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Username", "JohnDoe");
command.Parameters.AddWithValue("@Password", "123456");
command.ExecuteNonQuery();
}
}
}
}
在上面的代碼中,我們使用參數化查詢來插入一條用戶記錄到數據庫中。通過使用@Username
和@Password
作為參數名,并且使用command.Parameters.AddWithValue
方法來設置參數值,可以有效防止SQL注入攻擊。因為參數值會被自動轉義,避免了直接拼接SQL語句的安全風險。