解决方法
尝试从前面检测漏洞可能会有所帮助,但实际上您应该查看代码,特别是与DbCommand,sqlCommand等相关的所有代码.关键点,如您所知,永远不会将用户输入连接到查询,但要参数化.有很好的工具可以使这种参数化变得容易 – 或者至少比手动操作更容易.例如,如果您有:
using(var cmd = conn.CreateCommand()) { cmd.CommandText = "delete from Orders where id = " + id; cmd.ExecuteNonQuery(); }
那么像dapper-dot-net这样的工具将允许你做以下事情:
conn.Execute("delete from Orders where id = @id",new {id});