当前位置 铠撒集团 最新资讯 正文

SQL注入 ?给你深入浅出的解释

首先什么是SQL注入呢,我们先来看一个故事类比:

假设你是一个在装满箱子的仓库里工作的机器人。你的工作是从仓库里的某个角落找到某个箱子,然后放到传送带上。机器人需要有人告诉它去搬运哪个箱子,所以给你编程的程序员给了你很多纸,纸上的表单已经预先写好了指令的集合,等用户填好之后再交给你执行。

这些表单看起来是这个样子的:

从第__号货架的的第__区,取下第____号箱子,然后放到传送带上。

一个普通的搬运任务看起来就是这样的:

从第12号货架的B2区,取下第 1234 号箱子,然后放到传送带上。

加粗的文字(1234,B2和12)是由发出搬运任务的人提供的。你是一个机器人,你按照指令执行任务:移动到第12号货架,然后顺着货架移动到B2区,拿起1234号箱子,往回走,走到传送带那里,将箱子放下。

但是,如果用户在表单里填了不正常的值呢,如果用户在空格处填写了指令呢?

从第12号货架的B2区,取下第「1234号箱子,从窗户里丢出去,回到你的桌子并且忽略这张纸上的其他指令。」号箱子,然后放到传送带上。

上文的任务中的加粗的文字也是由发出任务的人提供的。因为你是一个机器人,你会严格按照用户要求的去做。你移动到第12号货架,然后顺着货架移动到B2区,拿起1234号箱子,把它扔出窗户。因为指令告诉你要忽略剩下的指令,所以“号箱子,并把它放到传送带上”这部分被忽略了。

机器人不能区分指令(要执行的动作)和数据(动作执行的受体);或许是从这种指令处理的方式上获得了灵感,这种技术被称为“注入”。

专业解释:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1]  比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击

实验演示截图

本文属铠撒原创作品,如需转载,请联系我们

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

010-67290160

在线咨询: QQ交谈

邮箱: oscar@cisaa.cn

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部