黑马程序员--ADO.NET学习之SQL注入漏洞攻击
2012-05-16 19:28
429 查看
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
登录判断:select * from T_Users where UserName=... and
Password=...,将参数拼到SQL语句中。
注:上述程序有漏洞,则(用户名可随意输入,密码:1'or '1' = '1 则可成功登陆)。
避免漏洞输入 代码:
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/
登录判断:select * from T_Users where UserName=... and
Password=...,将参数拼到SQL语句中。
Console.WriteLine("请输入用户名!"); string userName = Console.ReadLine (); Console.WriteLine("请输入密码!"); string pass = Console.ReadLine(); string str = "Data Source=B048;Initial Catalog=Text;Integrated Security=True"; using (SqlConnection conn = new SqlConnection(str)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select count(*) from Person where Name ='" + userName+ "' and Password = '"+pass+"'"; int i = Convert.Toint32(cmd.ExecuteScalar()); if(i>0) { Console.WriteLine("登陆成功!"); } else { Console.WriteLine("用户名或密码错误,登陆失败!"); } } } Console.WriteLine("OK"); Console.ReadLine();
注:上述程序有漏洞,则(用户名可随意输入,密码:1'or '1' = '1 则可成功登陆)。
避免漏洞输入 代码:
Console.WriteLine("请输入用户名!"); string userName = Console.ReadLine (); Console.WriteLine("请输入密码!"); string pass = Console.ReadLine(); string str = "Data Source=(local);Initial Catalog=Text;Integrated Security=True"; using (SqlConnection conn = new SqlConnection(str)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select * from Person where Name = @userName and Password = @pass"; cmd.Parameters.Add(new sqlParameter("userName",userName)); cmd.Parameters.Add(new sqlParameter("pass",pass)); int i = Convert.Toint32(cmd.ExecuteScalar()); if(i>0) { Console.WriteLine("登陆成功!"); } else { Console.WriteLine("用户名或密码错误,登陆失败!"); } } } Console.WriteLine("OK"); Console.ReadLine();
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/
相关文章推荐
- 关于SQL漏洞注入(Ado.Net)
- 黑马程序员--学习笔记之SQL注入漏洞攻击
- 黑马程序员_学习日记6_ADO.Net入门2
- 黑马笔记-ADO.NET基础学习(二)
- asp.net core mvc 统一过滤参数,防止注入漏洞攻击
- SQL 注入防漏洞攻击
- 黑马程序员之ADO.NET学习笔记:SqlDataReader(数据流读取器)
- 黑马学习日记two--ADO.NET
- ASP。NET 中SQL防注入攻击
- 21.2015.08.13第二十三课ado.net3(增删改查、get传值、post传值、SQL防注入、调存储过程、SQLHELPER)
- ADO学习笔记之注入漏洞与参数化查询
- 黑马程序员之ADO.NET学习笔记:通过SqlCommand对象执行SQL语句
- t-sql-ado.net学习ado.net
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #3 -- LINQ-to-SQL、EntitySQL、查询产生器方法(Query builder)三种语法
- asp.net防SQL/JS注入攻击:过滤标记
- 黑马程序员之ADO.NET学习笔记: SqlTransaction(事务)
- 如何防止ASP.NET应用程序中的SQL注入安全漏洞
- ADO.NET学习之防止SQL注入,存储过程,SqlDataReader
- ADO.NET学习之SqlCommandBuilder
- (2)C#之ADO.Net 如何解决SQL注入漏洞攻击