fishgo1 发表于 2014-6-27 22:48:57

使用 input->get 没有防止注入是为什么?


文档中写第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,为什么没有防止注入呢?
http://test.brandsh.cn/aaron/q13123.jpg


谢谢各位了~

fishgo1 发表于 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也没过滤掉,我就不清楚是怎么回事了

前沿/wx网络 发表于 2014-7-8 10:50:34

你确定你用的AR?
不是用的$this->db->query()?
我试了一下,用$this->db->query()?
得到你的那个sql
用AR是
SELECT * FROM (`erp_news`) WHERE `id` = 'BSDYN412\' AND 5777=5777 AND \'NNxvf\'=\'NNxvf'

fishgo1 发表于 2014-7-1 12:06:29

燃雲 发表于 2014-7-1 11:42





这只是一个列子

我用阿里云的服务器检测出来的SQL注入危险,那么我只是说这个参数接收的时候有没有办法过滤?因为我只需要接收一个ID,如果有多余的东西一起运行了SQL那不是会有危险吗?

燃雲 发表于 2014-6-28 07:08:15

看得呆了!

1. XSS什么时候成了ssx?

2. XSS与SQL有什么关系?

fishgo1 发表于 2014-6-28 15:53:47

燃雲 发表于 2014-6-28 07:08
看得呆了!

1. XSS什么时候成了ssx?


额,写错了,其实我的意思说,注入没有防住这是为什么呢?

fishgo1 发表于 2014-6-29 11:39:50

没有人可以回答下么???

longjianghu 发表于 2014-6-30 09:21:14

本帖最后由 longjianghu 于 2014-7-7 08:13 编辑

你这个就是一个没有明显错误的BUG。CI帮你把基础工作搞定,其它的还是需要你自己处理。

Hex 发表于 2014-6-30 13:19:42

楼主要明确一个概念,XSS 防止的不是 SQL 注入。
XSS 全称:跨站脚本攻击,这个是攻击浏览器页面的,这个跟 SQL 没有任何关系。

所以,这里防止的是 XSS 攻击,如果想防止 SQL 注入,请使用 Active Record。

fishgo1 发表于 2014-6-30 18:24:29

Hex 发表于 2014-6-30 13:19
楼主要明确一个概念,XSS 防止的不是 SQL 注入。
XSS 全称:跨站脚本攻击,这个是攻击浏览器页面的,这个跟 ...

谢谢回答~

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

Hex 发表于 2014-7-1 09:55:17

fishgo1 发表于 2014-6-30 18:24
谢谢回答~

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


什么语句运行了?防止注入不是阻止SQL运行,而是让SQL无害化。

燃雲 发表于 2014-7-1 11:42:03

where `clientid`='BSDYN412' AND 5777=5777 AND 'NNxvf'='NNxvf'



where `clientid`='BSDYN412'

有何分别?

注入了什么?

真是气功高手!我有点吐血的感觉!
页: [1] 2
查看完整版本: 使用 input->get 没有防止注入是为什么?