您的位置:首页 > 职场人生

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

2011-12-06 23:45 423 查看
----------------------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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: