为了防止SQL注入,你应该使用参数化查询。在C#中,你可以使用ADO.NET的SqlCommand和SqlParameter类来实现。以下是一个示例代码,展示了如何使用参数化查询来执行一个安全的SQL命令。
using System;
using System.Data;
using System.Data.SqlClient;
public class SafeSql
{
public static void Main()
{
string connectionString = "Your Connection String Here";
string sql = "SELECT * FROM Users WHERE Username = @username AND Password = @password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(sql, connection);
// 添加参数
command.Parameters.AddWithValue("@username", "safeUsername");
command.Parameters.AddWithValue("@password", "safePassword");
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["Username"]);
}
}
}
}
}
在这个例子中,@username和@password是参数的占位符,它们会被相应的参数值替换。使用AddWithValue方法添加参数时,ADO.NET会处理转义和类型匹配,从而防止了SQL注入攻击。记得永远不要将用户输入直接拼接到SQL语句中。
查看更多关于c# 防止MSSQL注入代码实例的详细内容...