zbl110119 发表于 2009-2-20 21:17:35

关于CI的注入过滤问题

请问一下CI默认是会自动过滤单引号,危险字符这类注入语句的吗,我用$this->input->post方式试过没有过滤掉单引号,完全原始字符串显示出来了,CI里有什么其他过滤的函数吗或者是需要自己过滤,谢谢

Hex 发表于 2009-2-20 22:51:15

单引号你不需要担心,你传的是什么,收到的就是什么。
危险过滤有 XSS 过滤,详情请参考手册。

zbl110119 发表于 2009-2-21 11:57:57

单引号不过滤的话很容易引起注入漏洞的,CI在$this->db->query()方法是不是在查询数据库前自动对sql语句转义,过滤危险字符呢

Hex 发表于 2009-2-21 13:02:39

单引号过滤成 \' 会造成一些问题。
XSS 过滤会替你考虑这些的,包括 SQL 注入。

Hex 发表于 2009-2-21 13:03:27

危险字符不是在 query 里过滤,那里只是进行转义 SQL 非法字符。
真正的安全防范是 XSS 过滤。

manzuni 发表于 2009-4-21 12:23:08

$this->input->post()第一个参数是所要取得的post中的数据:
$this->input->post('some_data');如果数据不存在,方法将返回 FALSE (布尔值)。
第二个参数是可选的,如果想让取得的数据经过跨站脚本过滤(XSS Filtering),把第二个参数设为TRUE

manzuni 发表于 2009-4-21 12:31:50

本帖最后由 manzuni 于 2009-4-21 13:09 编辑

1# zbl110119

$this->input->post() 不用担心'引号的问题,它本身已经帮你处理了。如果你想更安全的处理的话,可以使用 $this->db->escape('fileld_name')
页: [1]
查看完整版本: 关于CI的注入过滤问题