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

关于CI的注入过滤问题

[复制链接]
发表于 2009-2-20 21:17:35 | 显示全部楼层 |阅读模式
请问一下CI默认是会自动过滤单引号,危险字符这类注入语句的吗,我用$this->input->post方式试过没有过滤掉单引号,完全原始字符串显示出来了,CI里有什么其他过滤的函数吗或者是需要自己过滤,谢谢
发表于 2009-2-20 22:51:15 | 显示全部楼层
单引号你不需要担心,你传的是什么,收到的就是什么。
危险过滤有 XSS 过滤,详情请参考手册。
 楼主| 发表于 2009-2-21 11:57:57 | 显示全部楼层
单引号不过滤的话很容易引起注入漏洞的,CI在$this->db->query()方法是不是在查询数据库前自动对sql语句转义,过滤危险字符呢
发表于 2009-2-21 13:02:39 | 显示全部楼层
单引号过滤成 \' 会造成一些问题。
XSS 过滤会替你考虑这些的,包括 SQL 注入。
发表于 2009-2-21 13:03:27 | 显示全部楼层
危险字符不是在 query 里过滤,那里只是进行转义 SQL 非法字符。
真正的安全防范是 XSS 过滤。
发表于 2009-4-21 12:23:08 | 显示全部楼层
$this->input->post()第一个参数是所要取得的post中的数据:
$this->input->post('some_data');如果数据不存在,方法将返回 FALSE (布尔值)。
第二个参数是可选的,如果想让取得的数据经过跨站脚本过滤(XSS Filtering),把第二个参数设为TRUE
发表于 2009-4-21 12:31:50 | 显示全部楼层
本帖最后由 manzuni 于 2009-4-21 13:09 编辑

1# zbl110119

$this->input->post() 不用担心'引号的问题,它本身已经帮你处理了。如果你想更安全的处理的话,可以使用 $this->db->escape('fileld_name')

本版积分规则