我在搜索中看到在 SQL 查询中使用参数化字符串,如下所示:
SqlCommand comm = new SqlCommand();
comm.CommandText="SELECT * FROM table WHERE field LIKE '%'+@var+'%'";
comm.Parameters.AddWithValue("var","variabletext");
SqlDataReader reader = comm.ExecuteReader();
然而,在这个论坛中,有人提到尽管它被用于参数化字符串,但它仍会受到 sql 注入的影响。我只能假设连接的字符串绕过所有参数化的安全性,直接将值作为字符串插入。如果是这种情况,如何在参数化查询中使用通配符运算符同时避免 sql 代码注入?