登录SQL注入

在登录页面的账号密码的输入框中分别输入,这个值:1' or '1'='1

 

 一,验证的数据库语句,讲传人的值组合成数据库语句:

        public DataTable CheckLogin(string name, string pwd)
        {
            string strSqlCom = "select *from UserInfo where Name = '" + name + "' and Pwd = '" + pwd + "'";
            return _db.ExceTable(strSqlCom);
        }

运行调试结果为:

 二,在SqlHelper中的代码为:

        public DataTable ExceTable(string strCom) //该方法返回一个DataTable类型
        {
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter(strCom, _sqlCon);
                DataTable ds = new DataTable();
                sda.Fill(ds);
                return ds;
            }
            finally
            {
                _sqlCon.Close();
            }
        }

运行调试结果为:

 

三,返回验证登录代码为:

 public bool CheckLogin(string name, string pwd)
        {
            DataTable ds = new DataTable();
            ds = _login.CheckLogin(name, pwd);
            if (ds.Rows.Count > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

运行调试结果为:

 

这是后可以显示,当输入以上条件,他将我数据库的用户表的所有用户都选出来了,则返回true,登录成功

 四,防止SQL注入方法:

1》初始化参数名和参数类型:参数化方法,参数类型的指定,能提高类型安全,有效防止SQL注入

        StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into UserInfo(");
            strSql.Append("UsersName)");
            strSql.Append(" values (");
            strSql.Append("@UsersName)");
            SqlParameter[] parameters = {new SqlParameter("@UsersName", SqlDbType.VarChar,50)};
       parameters[0].Value = model.UsersName;

 

转载于:https://www.cnblogs.com/May-day/p/5831605.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值