话题 首页 > SQL 教程 > SQL 教程话题列表 > 详情

sql 注入对哪些数据库有效果

精华
初一扛把子 2016-10-19 02:33:54 浏览(5497) 回复(7) 赞(0)
sql注入只对微软的sql server有效么? 对其他数据库无效?
sql

回答(7)

jing_cai 2016-10-19

我觉得你应该先了解下什么是sql注入,所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。 你可以了解下这个http://www.cnblogs.com/heyuquan/archive/...,sql注入是一种安全隐患,实际上跟是什么数据库没有直接关系,是程序过滤不完全导致的,简单的注入就是用户输入了特殊字符,导致我们在代码中的sql语句变了查询的结果也不是我们想要的!

zxh877027287 2017-05-24

举个栗子:你数据库后台脚本写的是delete from table where name=A ;A 是变量。那么这个地方当参数A的值是 z or columnName=3 .这样会有什么后果呢?脚本拼接起来就成了 delete from table where name=z or columnName=3。除了删除name=z的数据还会删除columnName=3的所有数据。这样讲应该就明白了吧。

学号:169815 2018-12-15

其实吧,我们现在写sql直接都是预编译sql,也就是说你想注入。。。可能是没戏了

直接给你举两个例子吧!【】里面的代表实际sql位置传入的参数

非预编译

我们的代码:select username,password from user where username=?

然后你传入参数【123 or username is not null】

数据库带着你的参数传进去然后编译这条sql语句

然后编译结果就是:select username,password from user where username='123' or username is not null

最终执行结果就是 所有的用户都查出来了

接下来看看预编译

我们的代码:select username,password from user where username=?

然后你传入参数【123 or username is not null】

然后数据库编译这条sql语句 select username,password from user where username=?

然后带着你的参数放在username位置 发现是字符串,然后加上单引号‘’

然后执行的sql就是:select username,password from user where username=‘123 or username is not null’

最终执行结果就是没有username=‘123 or username is not null’ 的

所以,这填空题你咋填都不对

(看不懂的仔细看看,有问题可以联系qq670706603)

www1511263044 2018-01-22

我记得我上学的时候老师教过,简单的表单很容易被sql注入攻击。现在很少见了。兄弟,别搞注入攻击。学习是可以的,用注入攻击别人的账号是犯法的。例如盗别人的账号

一笔荒芜 2018-05-31

留名留名!!!,同样的问题,看看咋结局!!!

1144100656 2018-05-31

快来解决啦!快来!快来! 快来 快来

1152696398 2018-05-31

刚学习程序,过来学习学习!!!!...

要回复,请先登录 或者注册