ado.net使用参数化的sql语句为什么可以防止sql注入攻击?
比如Sqlserver的插入语句"insertintousersvalues(@username,@password)"为什么可以防止sql注入攻击?在书上看到的,呵呵~...
比如Sql server 的插入语句"insert into users values(@username,@password)"为什么可以防止sql注入攻击?在书上看到的,呵呵~
比如Sql server 的插入语句"insert into users values(' "+tbxUsername.Text+" ',' "+tbxPassword.Text+" ')"为什么不能防止sql注入攻击?
我用的是C#班ado.net 展开
比如Sql server 的插入语句"insert into users values(' "+tbxUsername.Text+" ',' "+tbxPassword.Text+" ')"为什么不能防止sql注入攻击?
我用的是C#班ado.net 展开
2个回答
展开全部
拼字符串的话,会出现很多问题
比如 select * from emp where name='SMITH'
这里只能查出一条数据
但是如果拼成 select * from emp where name='SMITH' or 1=1
那整个数据库的数据都查出来了
比如 select * from emp where name='SMITH'
这里只能查出一条数据
但是如果拼成 select * from emp where name='SMITH' or 1=1
那整个数据库的数据都查出来了
更多追问追答
追问
但只给它一个文本框,不可能造成这样啊,比如代码里写“select * from emp where name='tbx.Text',用户再怎么乱写也只能让sql语句变成select * from emp where name='SMITH or 1=1'啊?
追答
这么写是最容易的
你写上name=tbx.text
如果tbx.tex='smith' or 1=1呢?是不是就查出来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询