sql注入的方法(小知识:SQL注入是怎么做到的)

本文目录
小知识:SQL注入是怎么做到的
pwd varchar(20))go--示例数据:
insert into t_user(username,pwd)
select ’admin001’,’pwd001’ union all
select ’admin002’,’pwd002’ union all
select ’admin003’,’pwd003’
下面我们要写程序验证用户名和密码,这是网站后台登陆经常出现的程序,假如代码如下:c# code:string username = textbox1.Text;
string pwd = textbox2.Text;
string sql = “select * from t_user where username =’“ + username + “’ and pwd = ’“ + pwd + “’“;
Response.Write(sql);
Response.End();
//输出结果如下:
select * from t_user where username =’1’ or ’1’=’1’ and pwd=’1’ or ’1’=’1’
把上面的语句在查询分析器里面执行看看,是不是所有的数据都出来了。这样就绕过了用户验证了吧。
现在终于看出来是哪里出的问题了吧,一般SQL注入都是由拼接SQL语句和单引号’引起的。这里提供两种简单的解决办法:
1.过滤逗号:这个方法比较笨,而且不是很好用,因为你必须在每个程序页面都过滤逗号;上面代码可以改成:c# code:string username = Replace(textbox1.Text,“’“,““);
string pwd = Replace(textbox2.Text,“’“,“’);
string sql = “select * from t_user where username =’“ + username + “’ and pwd = ’“ + pwd + “’“;
2.用存储过程代替拼接的语句:这是个好方法,也是备受推崇的方法。好处就不多说了。存储过程如下:sql codecreate procedure p_user_verify
@username varchar(20) = ’’,
@pwd varchar(20) = ’’asset nocount on
防止sql注入的最佳方式
1、利用第三方软件加固,监控所有传入的字符串
2、网上有很多防SQL注入代码,引入到网页的每一个需要传值页里
3、对于每一个传值,进行数据类型、长度、规则等判断,比如传入ID=1,你要判断ID里的是不是数字,且不会超过多少位,如果不满足条件就做其它处理
通常就这三种方法
sql注入方式和防御
注入方式:QL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防御:如果是.net的后台
比如sql语句是
id=’“+
textbox.Text
+“’
就会被注入,
如果id=@idcommand.parameters.addWithValue(“@id“,textbox.Text)
这样就可以。用replace把单引等特殊字符替换也行

更多文章:
windows程序设计第五版(《WINDOWS程序设计》和《WINDOWS核心编程》的区别)
2026年10月15日 11:30
issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)
2026年10月15日 10:30
begin和start的区别(start与begin的区别)
2026年10月15日 09:20
vant官网中文(范特365 是韩国化妆品VANT36.5吗)
2026年10月15日 09:10
prison break(越狱(prison break)到底是在讲个什么)
2026年10月15日 06:50
c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)
2026年10月15日 06:40




