asp.net关于防注入问题
大家在写asp.net 的时候都是如何防注入的呢 直接replace 还是用cmd.Parameters来添加参数呢。我现在想搞个函数来实现将接收不同数目的字段然后用cmd.Parameters添加字段来达到防注入的目的。但这用的不是很熟悉,希望谁能给我一个例子 。 谢谢
              
              
------解决方案-------------------- 使用Command.Parameters添加参数,而不是拼接sql就可以防止sql注入。
------解决方案-------------------- 自己学会找资料,找不到再提问,防注入参考http://database.51cto.com/art/201301/377069.htm
------解决方案-------------------- 方法有,
基本都是存储过程做的,也可以用正则验证。
这也是比较普遍的问题,
Command.Parameters 就是ado.net 一个对象。比较简单查查资料就好了。 
------解决方案-------------------- http://blog.csdn.net/jason_dct/article/details/8545456
------解决方案-------------------- 1.用SQLParameter
2.自己写个方法过滤SQL关键字
------解决方案-------------------- 过滤关键字和特殊字符,然后用传参的方法,添加到数据库。
------解决方案-------------------- 无法对任何数据库对象进行参数化查询,
想要动态接收字段列表,
只能通过字符串拼接,而且也不能获得参数化查询的执行计划性能优势;
不过,sql注入是可以防止的,很简单,你把函数接收的字段列表(不管是UI来的,还是硬编码的)
统统和数据表的字段列表匹配一下,命中的就接受,否则抛出异常
------解决方案-------------------- 引用: 恩主要是现在Command.Parameters用的不多不怎么熟悉,能给个函数实例吗  
        /// <summary> 
        /// 执行存储过程,返回受影响的行数(主要用于增、删、改的存储过程) 
        /// </summary> 
        /// <param name="prcName">存储过程名称</param> 
        /// <param name="sp">受影响的行数</param> 
        /// <returns></returns> 
        public static int GetNonQuery(string prcName, SqlParameter[] sp) 
        { 
            SqlCommand cmd; 
 
            using (SqlConnection cn = new SqlConnection(strcon)) 
            { 
                cn.Open(); 
                cmd = new SqlCommand(prcName, cn); 
                cmd.CommandType = CommandType.StoredProcedure; 
                foreach (SqlParameter s in sp) 
                { 
                    cmd.Parameters.Add(s); 
                } 
 
                return cmd.ExecuteNonQuery(); 
            } 
        }