请hex帮忙看下,CI3关于注入的问题
因为查询用到的语句非常复杂,所以基本都是用$this->db->query($sql)来完成查询的。sql中拼接的字段都经过$this->input->get('sample',true)过滤了一次,但发现还是可以注入。
一定要把输入和sql语句拼接的字符做mysql_real_escape_string处理吗?
1.
XSS 攻擊和 SQL Injection 是兩件事
get() 第二參數是防 XSS 的
2.
要防 SQL Injection 請參閱:CI 手冊 - 查詢綁定 赞同二楼,请按二楼的方案做。 谢谢超版和老大
使用CI的db类查询的话,直接试用查询绑定就可以了,如果不想使用CI的db类,有没有什么方法防注入。
另外insert的话,如果使用CI的DB类在插入之前对插入数据需要做什么处理? ianbovey 发表于 2016-10-17 18:41
谢谢超版和老大
使用CI的db类查询的话,直接试用查询绑定就可以了,如果不想使用CI的db类,有没有什么方法 ...
不使用CI的DB类的话就是你准备用手写mysqli或者pdo来实现连接数据库吗? 那这样的话就得对数据进行预处理,包括过滤关键字,去除特殊符号等等。。。其实查询绑定用起来蛮方便的吧。。。
然后插入数据前的处理是用filter来进行的吧? 主要是类型,然后对特殊符号,关键字进行过滤什么的。。。这个可以自己写规则,或者用正则来进行匹配解决的
页:
[1]