专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » sql注入式攻击:SQL 注入式攻击的本质 »正文

sql注入式攻击:SQL 注入式攻击的本质

来源: 发布时间:星期三, 2008年12月24日 浏览:124次 评论:0
更没想到是这么老掉牙东西居然还能跑出来搅风搅雨而且造成了如此大破坏有文章还说注入式攻击还会有“第 3波”攻击潮到时候会更加难以察觉连微软大佬都跑出来澄清说和微软技术和编码无关微软为此还专门推出了 3个检测软件Software那么这个SQL注入式攻击漏洞究竟是如何造成呢?
正如微软大佬所说是由于网站WebSite开发人员编码不当造成不光是ASP、ASP.NET也包括JSP、PHP等技术受影响也不仅仅是Access和SQL Server数据库也包括Oracle和MySql等其他关系数据库和人家微软没什么关系事实上不光是基于B/S架构系统或网站WebSite存在这样问题基于C/S架构系统也存在这样问题只不过由于C/S架构特点决定了不可能像B/S系统这样影响这么广泛那么为什么说这个问题是开发人员编码不当造成下面我们就来具体分析
首先让我们来看下以下这两条SQL查询语句
语句1:select * from s where stype=1
语句2:select * from s where stype=1;drop table s
语句3:select * from s where stype='社会新闻'
语句4:select * from s where stype='社会新闻';drop table s--'
大家都知道语句1作用是查询s表中stype字段值等于1所有记录其中stype字段类型是种数值型比如Int、SmaillInt、TinyInt、Float等等;语句2实际上是两条语句作用和语句1作用相同第 2条作用是删除数据库中s表语句3和语句4功能和语句1、语句2基本相同所区别是语句3、4里stype字段是比如:char、varchar、nvarchar、text等等
不管是在ASP还是ASP.NET还是JSP或PHP般我们都会采用“select * from s where stype=”+v_stype思路方法来构造语句1或者“select * from s where stype='”+v_stype+"'"来构造语句3其中v_stype是个变量如果v_stype值等于1构造出来就是语句1了如果v_stype值等于"社会新闻"构造出来就是语句3了但是很不幸是如果我们忽略了对v_stype检查通过这个思路方法构造出来也可能是语句2或者语句4比如v_stype值为“1;drop table s”或“社会新闻';drop table s--”如果我们疏忽让别人给利用了就会给我们造成巨大损失SQL注入式攻击正是利用了我们这个疏忽所以说SQL注入式攻击根源来自开发人员编码不当和你所使用平台、开发工具以及系统架构等等都没有任何直接关系
既然SQL注入式攻击是由于编码人员编码不当造成那究竟如何样编码才是恰当编码才不会受到SQL注入攻击呢篇我们将继续介绍
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: