ADO.NET复习总结(3)--参数化SQL语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ADO.NET复习总结(3)--参数化SQL语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2468字,纯文字阅读大概需要4分钟。
内容图文
![ADO.NET复习总结(3)--参数化SQL语句](/upload/InfoBanner/zyjiaocheng/497/be1c99188965431c987f132dbfeb556c.jpg)
数据库为:
注意:运行代码为结果为
数据库中执行一遍代码:
结果执行正确,没有问题、
但是请看执行下面查询 (sql注入原理:攻击数据库的一种方式):
查询框中输入:
a‘ or 1=1 or 1=‘
在数据库中的代码为(加单引号):
select Count(*) from userinfo where username=‘a‘ or 1=1 or 1=‘‘--这句永远为true
4、实行参数化
![ADO.NET复习总结(3)--参数化SQL语句 - 文章图片](/upload/getfiles/0001/2021/4/25/20210425014855841.jpg)
![ADO.NET复习总结(3)--参数化SQL语句 - 文章图片](/upload/getfiles/0001/2021/4/25/20210425014855870.jpg)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { using (SqlConnection conn =new SqlConnection("server=.;database=dbtest;uid=sa;pwd=123") ) { // string sql = "select Count(*) from userinfo where username=‘" + textBox1.Text + "‘ "; string sql = "select count(*) from userinfo where username=@name";//参数化 SqlCommand cmd = new SqlCommand(sql,conn); //加参数:cmd的parameters属性,一个参数用add方法 cmd.Parameters.Add( new SqlParameter("@name", textBox1.Text) ); conn.Open(); int i = Convert.ToInt32(cmd.ExecuteScalar()); MessageBox.Show(i.ToString()); } } } }View Code
参数化语句执行过程:
(1)打开数据库工具->Profier工具(数据库分析监测工具)
(2)执行代码:输入a‘ or 1=1 or 1=‘
点击button后
(3)然后看下Profiler
exec sp_executesql N‘select count(*) from userinfo where username=@name‘,N‘@name nvarchar(16)‘,@name=N‘a‘‘ or 1=1 or 1=‘‘‘--底下的代码
ADO.NET复习总结(3)--参数化SQL语句
标签:执行 server window space width click height client box
本文系统来源:http://www.cnblogs.com/mhq-martin/p/8086930.html
内容总结
以上是互联网集市为您收集整理的ADO.NET复习总结(3)--参数化SQL语句全部内容,希望文章能够帮你解决ADO.NET复习总结(3)--参数化SQL语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。