要求ASP.NET(C#)写的,代码清晰易懂,有注释,还要调用函数的代码怎么写

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-07-26 20:04:00 编辑
      

  2.   

    目前防范SQL注入的最主流的方式就是用带参数的SQL语句或存储过程。
      

  3.   

    用带参数的语句是最可靠的Sqlparameter
      

  4.   


    假如问我如何在几个字内简单、傻瓜化地方式可以解决这个问题,我也是觉得这是最好的回答。盲目地去过滤什么字符是很可笑的,这也会掩盖一些根本不合给的“东郭先生”到你的编程队伍里。比如说,对于使用sql server的程序员,谁说用户登录名就不允许有单引号?先不考虑可以在业务逻辑上找什么理由,单从技术上来说,如果一个程序员做不到让用户登录名可以包括单引号,他就根本不合格去做数据库编程。
      

  5.   

    拼接sql时用参数化处理,算是简单明了的一种方式。
    Sqlparameter,具体用法百度即可。
      

  6.   

    简单的sql 过滤 临时写的  public static string SqlFilter( string contents )
            {
                if (!string.IsNullOrEmpty(contents))
                {
                    contents = Regex.Replace(contents, " exec | insert | select | delete | update | master | truncate | declare ", "", RegexOptions.IgnoreCase);
                    contents = contents.Replace("'", "''");
                }
                return contents;
            }最好还是用带参数的语句是最可靠的 不用sql拼接
      

  7.   

    使用linqtosql方式,就可以杜绝SQL注入
      

  8.   

    参数化就行了。一般用一个成熟的ORM框架已经把参数化写好了
      

  9.   

    public class DBHelper{
    public SqlConnection getConn(){
     string url="";//链接数据库
    sqlConnection conn=new SqlConnection(url);
            }
    }
    public int insertUser(userInfo)//userInfo是数据库表
    {
        sqlConnection conn=null;
        DBHelper db=new DBHelper();
        try{
             conn=db.getConn();//连接数据库
             conn.open();//打开数据库
            string sql="insert into userInfo values(@username,@userPwd)";
            SqlCommend cmd=new SqlCommend(sql,conn);
            Sqlparameter[]para={
                new Sqlparameter("@username",username),//username是数据库表的字段
                 new Sqlparameter("@userPwd",userPwd)//userPwd是数据库表的字段
    };
                parame.add(para);//把para放进去
                int result=cmd.execust();//cmd.exee什么的一个方法 返回数值类型的(忘了方法怎样写的)
             }
    catch(SqlExection e){}
    }