C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2195字,纯文字阅读大概需要4分钟。
内容图文
-- SQl中 -- 建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code nvarchar(20) primarykey,--编号 name nvarchar(50)--名字) insertinto xinxi values(‘1001‘,‘zhangsan‘)
for (; ; ) { bool b = false;//利用中间变量 Console.Write("请输入要修改的编号:"); string no = Console.ReadLine(); //查询展示 SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接 //操作的语句 SqlCommand zhancmd = zhancnn.CreateCommand(); zhancmd.CommandText = "select * from xinxi where code=‘" + no + "‘"; //执行操作的语句 zhancnn.Open(); SqlDataReader ss = zhancmd.ExecuteReader(); if (ss.HasRows)//数据库中是否有要修改的数据 { b = true; } zhancnn.Close(); if (b == true)//如果有要修改的数据 { Console.Write("找到【" + no + "】的信息,请输入要修改的名字:"); string mingzi = Console.ReadLine(); zhancmd.CommandText = "update xinxi set name=‘"+mingzi+"‘ where code=‘"+no+"‘"; zhancnn.Open(); zhancmd.ExecuteNonQuery(); zhancnn.Close(); Console.WriteLine("修改完毕!"); break; } else//如果没有要修改的数据 { Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!"); } } Console.ReadLine();
执行时,,注意,我就要输入了:
然后查询数据库,查询全部,就成为了
为了防止这种注入文字攻击,我们就需要:
// C#中 for (; ; ) { bool b = false;//利用中间变量 Console.Write("请输入要修改的编号:"); string no = Console.ReadLine(); //查询展示 SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接 //操作的语句 SqlCommand zhancmd = zhancnn.CreateCommand(); zhancmd.CommandText = "select * from xinxi where code=‘" + no + "‘"; //执行操作的语句 zhancnn.Open(); SqlDataReader ss = zhancmd.ExecuteReader(); if (ss.HasRows)//数据库中是否有要修改的数据 { b = true; } zhancnn.Close(); if (b == true)//如果有要修改的数据 { Console.Write("找到【" + no + "】的信息,请输入要修改的名字:"); string mingzi = Console.ReadLine(); zhancmd.CommandText = "update xinxi set name=@mingzi where code=@no;";//@变量名:占位符。注意:name=@mingzi没有引号 zhancmd.Parameters.Clear();//必须先清空里面所有内容 zhancmd.Parameters.Add("@mingzi",mingzi);//类似哈希表。第一个值随便取,必须跟上边一致;第二个是变量 zhancmd.Parameters.Add("@no",no); zhancnn.Open(); zhancmd.ExecuteNonQuery(); zhancnn.Close(); Console.WriteLine("修改完毕!"); break; } else//如果没有要修改的数据 { Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!"); } } Console.ReadLine();
//如果在执行窗口输入上跟上次一样的内容,那么输出的结果就是把”那句注入的代码“和”要改的name“ 作为一整个字符串进行处理。
原文:http://www.cnblogs.com/wwz-wwz/p/5869844.html
内容总结
以上是互联网集市为您收集整理的C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击全部内容,希望文章能够帮你解决C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。