基于Asp小议数据库注入的问题

时代的更换,Asp渐渐已经力不从心.PHP,JSP,.NET已经俨然成为主流的今天,在一些小的公司,或是很多小的应用上,Asp仍然具有小巧快捷,易于开发的优势!我的朋友里,就有好些,仍然在研习Asp.昨天晚上去办公室玩,看到好几个新手在学习Asp操作数据库,在此我又想到我做Asp的时候.在此把这篇文章献给新手们!

1.首先,我们看一个例子,现在有一张表user;

里面有3个column,分别是uid int not null auto_increment,uname char(30),upass char(50).

里面有一条记录:

>select * from user;

查询1

uid uname upass
1 test 123456

 

假设现有一个会员登录系统,存取用户用的就是上面的user表,我们在Asp写上这样的程序:

Iname=Request.form("username")

Ipass=Request.form("password")

...

sql="select * from user where uname='"&Iname&"' and upass='"&Ipass&"'"

Set rs=conn.execute sql

if rs.recordcount=1 then ...

这样来判断用户是否,正常登录!

a.现在我们测试一下,把用户名带入test,密码带入123456

查询语句变成 sql=select * from user where uname='test' and upass='123456',运行

查询1

uid uname upass
1 test 123456

完全正常!这也是一般的情况,没有问题!

b.下面我们看这样一个情况:

假设我输入 Iname=' or 1 or ', Ipass=' or 1 or ',这里没有用双引号,为了更清楚,直接写的字符串内容!

这样查询语句变为 sql=select * from user where uname='' or 1 or '' and upass='' or 1 or '',运行

查询1

uid uname upass
1 test 123456

很奇怪吧,我并不知道用名与密码,可是我们还是查出了内容!

这就是我们今天要说的问题!当用户并没有按照我们的要求,提供正常的用户名密码来完成验证!而是利用数据库的一些内部处理,以及程序的漏洞,非法获取了信息,这就是注入!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值