怎么调用存储过程防止SQL注入?急!

解决方案 »

  1.   

    给你一个防注入的例子    /// <summary>
        ///SQL注入过滤
        /// </summary>
        /// <param name="InText">要过滤的字符串</param>
        /// <returns>如果参数存在不安全字符,则返回true</returns>
        public static bool SqlFilter(string InText)
        {
            string word = "and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join";
            if (InText == null)
                return false;
            foreach (string i in word.Split('|'))
            {
                if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1))
                {
                    return true;
                }
            }
            return false;
        }
      

  2.   

    使用参数化,调用存储过程
    例如:
    SqlCommand sqlcomm = new SqlCommand("存储过程名", myconn);
    sqlcomm.CommandType = CommandType.StoredProcedure;SqlParameter parameterPN = new SqlParameter("@abc", SqlDbType.BigInt, 8);
    parameterPN.Value = ...;
    sqlcomm.Parameters.Add(parameterPN);
      

  3.   

    或者用SqlHelper框架中的防注入方法就可以解决!