【黑马程序员】登录时防止SQL注入漏洞攻击

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------


防止SQL注入漏洞攻击的方法:不使用SQL语句拼接,通过参数赋值。

使用SQL语句拼接时,用密码1' or '1'='1,可以登录成功。所以为了网站的安全,还是通过参数赋值的方式来登陆。


class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入用户名:");
            string username = Console.ReadLine();
            Console.WriteLine("请输入密码:");
            string pwd = Console.ReadLine();


            using (SqlConnection conn = new SqlConnection("data source=.;database=ado;uid=ado;pwd=123;"))
            {
                conn.Open();

                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = conn;
                    cmd.CommandText = "select count(*) from users where username='" + username + "'and password='" + pwd + "'";
                    //用以上的SQL语句拼接,会出现注入漏洞。。。。。用密码1' or '1'='1,都能登录成功
                   
                    //参数赋值
                    //cmd.CommandText = "select count(*) from users where username=@UN and password=@PWD";
                    //cmd.Parameters.Add(new SqlParameter("UN", username));
                    //cmd.Parameters.Add(new SqlParameter("PWD", pwd));
                    int i = Convert.ToInt32(cmd.ExecuteScalar());
                    if (i > 0)
                    {
                        Console.WriteLine("登录成功");
                    }
                    else
                    {
                        Console.WriteLine("用户名或密码错误!");
                    }
                }
            }
     
            Console.ReadKey();
        }
    }




----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值