用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4665|回复: 16
收起左侧

[已解决] 使用 input->get 没有防止注入是为什么?

[复制链接]
发表于 2014-6-27 22:48:57 | 显示全部楼层 |阅读模式

文档中写第2个参数加true可以防止ssx,

我的写法如下:
$clientid = $this->input->get("clientid",TRUE);


访问的时候填写如下:
index.php/?clientid=BSDYN412%27%20AND%205777%3D5777%20AND%20%27NNxvf%27%3D%27NNxvf


最后执行的sql,照样把注入的执行了,我用的是ar,为什么没有防止注入呢?



谢谢各位了~
 楼主| 发表于 2014-6-30 18:23:11 | 显示全部楼层
longjianghu 发表于 2014-6-30 09:21
GET参数有你这么用的么,如果我有10个GET参数,你是不是也准备一个GET搞定? ...

访问的时候填写如下:
index.php/?clientid=BSDYN412%27%20AND%205777%3D5777%20AND%20%27NNxvf%27%3D%27NNxvf




不是啊,我就一个clientid=BSDYN412 这样一个参数,后面的是SQL注入,问题是AR也没过滤掉,我就不清楚是怎么回事了
发表于 2014-7-8 10:50:34 | 显示全部楼层
你确定你用的AR?
不是用的$this->db->query()?
我试了一下,用$this->db->query()?
得到你的那个sql
用AR是
SQL复制代码
SELECT * FROM (`erp_news`) WHERE `id` = 'BSDYN412\' AND 5777=5777 AND \'NNxvf\'=\'NNxvf'
复制代码
 楼主| 发表于 2014-7-1 12:06:29 | 显示全部楼层

这只是一个列子

我用阿里云的服务器检测出来的SQL注入危险,那么我只是说这个参数接收的时候有没有办法过滤?因为我只需要接收一个ID,如果有多余的东西一起运行了SQL那不是会有危险吗?
发表于 2014-6-28 07:08:15 | 显示全部楼层
看得呆了!

1. XSS什么时候成了ssx?

2. XSS与SQL有什么关系?
 楼主| 发表于 2014-6-28 15:53:47 | 显示全部楼层
燃雲 发表于 2014-6-28 07:08
看得呆了!

1. XSS什么时候成了ssx?

额,写错了,其实我的意思说,注入没有防住这是为什么呢?
 楼主| 发表于 2014-6-29 11:39:50 | 显示全部楼层
没有人可以回答下么???
发表于 2014-6-30 09:21:14 | 显示全部楼层
本帖最后由 longjianghu 于 2014-7-7 08:13 编辑

你这个就是一个没有明显错误的BUG。CI帮你把基础工作搞定,其它的还是需要你自己处理。
发表于 2014-6-30 13:19:42 | 显示全部楼层
楼主要明确一个概念,XSS 防止的不是 SQL 注入。
XSS 全称:跨站脚本攻击,这个是攻击浏览器页面的,这个跟 SQL 没有任何关系。

所以,这里防止的是 XSS 攻击,如果想防止 SQL 注入,请使用 Active Record。
 楼主| 发表于 2014-6-30 18:24:29 | 显示全部楼层
Hex 发表于 2014-6-30 13:19
楼主要明确一个概念,XSS 防止的不是 SQL 注入。
XSS 全称:跨站脚本攻击,这个是攻击浏览器页面的,这个跟 ...

谢谢回答~

我这边就是使用的AR哦,但是我这个参数中有转码一些sql语句还是运行了啊。。
发表于 2014-7-1 09:55:17 | 显示全部楼层
fishgo1 发表于 2014-6-30 18:24
谢谢回答~

我这边就是使用的AR哦,但是我这个参数中有转码一些sql语句还是运行了啊。。

什么语句运行了?防止注入不是阻止SQL运行,而是让SQL无害化。
发表于 2014-7-1 11:42:03 | 显示全部楼层
SQL复制代码
WHERE `clientid`='BSDYN412' AND 5777=5777 AND 'NNxvf'='NNxvf'
复制代码




SQL复制代码
WHERE `clientid`='BSDYN412'
复制代码


有何分别?

注入了什么?

真是气功高手!我有点吐血的感觉!

本版积分规则