如果楼主指的是sql注入.
1.用参数化写法
2.string类型.将所有'号替换成'' ,
另外生成sql前判断数字类型,日期类型的合法性即可.

解决方案 »

  1.   

    public string Input(string input) 
    {
    return input.Replace("'","''").TrimEnd();
    }
      

  2.   

    大概思路有了,但是那位有没有比较全面的过滤函数,至少能过滤大部分的现有Sql注入攻击的
    应为自己写怕不够完备
      

  3.   

    用正则表达式替换sql关键字见过这种服务器组件的,该服务器所有论坛不能发表数据库类的文章
      

  4.   

    用参数化方法可有效避免SQL注入
      

  5.   

    sql注入的话可以使用存储过程
    其余的过滤危险字符可以使用Replace替换
      

  6.   

    /// <summary>
    /// 检查字符合法性
    /// </summary>
    /// <param name="Input">被检查的字符串</param>
    /// <returns></returns>
    virtual public string CheckInjection(string Input)
    {
    string re=@"/(select)|(\-\-)|(select)|(insert)|(delete)|(count)|"+
       @"(drop table)|(update)|(asc)|(mid |char)|(exec"+
       ")|(\")|(:)|(\')|(or)/ix";
    Regex digitregex = new Regex(re);
    MatchCollection mc = digitregex.Matches(Input);
    if ( mc.Count > 0 ) 
    {
    syslog1 ("遭到SQL注入攻击,注入代码为:"+Input);
    return "$#$#";

    else 
    {
    return Input;
    }
    }