首页 | 培训 | 求学 | 参考 | 教师 | 教材 | 学校 | 招聘 | 租房 | 旅游ASKEDU.com  


培训指南—ASKEDU.com

返回 | 主页


浅谈数据库的攻击(对SQL的突破)



[摘要]
例如某网页需要你输入用户名称和口令,这样就有两个文本框等待你的输入,现在我们假设有一用户adam,我们不知道他的口令,却想以他的身份登陆。

正常情况下,我们在第一个文本框输入adam,第二个文本框输入1234之类的密码,如果密码正确就可以进入,否则报错。

程序中的查询语句可能是:

sql="select * from user ...

例如某网页需要你输入用户名称和口令,这样就有两个文本框等待你的输入,现在我们假设有一用户adam,我们不知道他的口令,却想以他的身份登陆。

正常情况下,我们在第一个文本框输入adam,第二个文本框输入1234之类的密码,如果密码正确就可以进入,否则报错。

程序中的查询语句可能是:

sql="select * from user where username=’"&text1.value&"’ and passwd= ’"&text2.value&"’"

执行时候就是

select * from user where username=’adam’ and passwd=’1234’

好了,

如果我们在text2里输入的不是1234,而是1234’"&"’or 1=1

我们的sql语句就成了,

select * from user where username=’adam’ and passwd=’1234’ or 1=1

我们就可以进入了。。。

有经验的用户就在程序中增加对单引号等特殊字符的过滤。

但是,一般人习惯上有两种登录认证方式我就用ASP的VBScript做例子了:

一是用select * from ... where username = ’ & Request.Form("username") & "password = " & Request.Form("password"),然后判断结果是否为空来验证。其实还有一种方式:

用select * from ... where username = ’ & Request.Form("username"), 然后判断结果集中的密码是否和输入相同来验证,这种方式就安全一些了。


其它培训参考信息:
浅谈数据库的攻击(突破script的限制)
让程序ASP程序界面模板化3
让程序ASP程序界面模板化2
让程序ASP程序界面模板化1
五种DSN的使用方法
五种DSN的使用方法1
浅谈如何建立三层体系结构的ASP应用程序4
浅谈如何建立三层体系结构的ASP应用程序3



信息来自互联网,敬请核实,谨慎使用



 




  中国 | Worldwide: United States United Kingdom Australia Canada India | Travel AgencyASKEDU.com