Sql-Server应用程序的高级Sql注入(2)

来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-01 19:54 点击:

...authors表就会被删掉,原因过一会再解释。

似乎通过删除用户输入的字符串中的单引号或者通过一些方法避免它们出现可以解决这个问题。诚然如此,但是要实施这个解决方法还有很多的困难。因为首先:不是所有的用户提交的数据都是字符串形式,比如我们的用户输入通过'id'(看上去是个数字)来选择一个用户,我们的查询可能会这样:

select id,forename,surname from authors where id=1234

在这种情况下攻击者可以轻易的在数值输入后面添加SQL语句。在其他SQL方言中,使用着各种分隔符,比如MS Jet DBMS引擎,日期可以用'#'符号来分隔。
其次,避免单引号并不像开始我们想象的那样是必要的解决办法,原因下面讨论。

我们将以Active Server Pages(ASP)登陆页面为例子来详细说明,它访问一个Sql-Server数据库并且验证一个到我们假想的程序的访问。

这是用户填写用户名和密码的表单页面:

<HTML>
<HEAD>
<TITLE>Login Page</TITLE>
</HEAD>
<BODY bgcolor='000000' text='cccccc'>
<FONT Face='tahoma' color='cccccc'>
<CENTER><H1>Login</H1>
<FORM action='process_login.asp' method=post>
<TABLE>
<TR><TD>Username:</TD><TD><INPUT type=text name=username size=100%width=100></INPUT></TD></TR>
<TR><TD>Password:</TD><TD><INPUT type=password name=password size=100%
width=100></INPUT></TD></TR>
</TABLE>
<INPUT type=submit value='Submit'> <INPUT type=reset value='Reset'>
</FORM>
</FONT>
</BODY>
</HTML>

这是'process_login.asp'的代码, 它处理用户登陆:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • SQL注入攻击及其防范检测技术研究
  • Sql-Server应用程序的高级Sql注入
  • 学生信息管理系统数据库原理课程设计报告
  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • 经验总结:登录和优化IBM DB2的执行速度
  • db2管理工具小结
  • MySQL服务器的启动与停止
  • 浅谈数据库的接口技术
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1