CI框架中的SQL注入隐患
来源:互联网 发布:android如何调用js方法 编辑:程序博客网 时间:2024/05/02 02:57
0x00
在CI框架中,获取get和post参数是使用了$this->input类中的get和post方法。
其中,如果get和post方法的第二个参数为true,则对输入的参数进行XSS过滤,注意只是XSS过滤,并不会对SQL注入进行有效的防范。
例子:
Controller中,定义一个shit方法,获取get数据:
指定了第二个参数为true:
(1)XSS测试
(2)SQL注入测试
并不会对单引号进行处理。
0x01
在CI框架中,尽量使用AR类进行数据库查询是比较靠谱的,因为在底层会帮助使用者进行一次有效的转义,但也仅仅是转义而已。
过滤的方法是escape_str() :
function escape_str($str, $like = FALSE){ var_dump($str); echo "\n" ; if (is_array($str)) { foreach ($str as $key => $val) { $str[$key] = escape_str($val, $like); } return $str; } if (function_exists('mysql_real_escape_string')) { $str = addslashes($str); } elseif (function_exists('mysql_escape_string')) { $str = mysql_escape_string($str); } else { $str = addslashes($str); } // escape LIKE condition wildcards if ($like === TRUE) { $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); } return $str;}
该方法仅仅是调用了一些转义函数,并对like参数进行过滤。
如果查询的变量没有被单引号包裹,那么就无法进行保护:
0x02
AR类的过滤方案是没有考虑数组的key值的,纵观各大CMS出现的SQL注入,由于数组的$key过滤不严直接带入SQL查询的漏洞屡见不鲜。
输出为:
0x03
CI框架开发速度快,轻巧,并且不用单独学习一门模板语言也可以使用。但是如果对CI框架中自带的安全机制理解不透彻,会导致无穷无尽的漏洞。
1 0
- CI框架中的SQL注入隐患
- 堵死网站被SQL注入的隐患
- SQL注入 小问题大隐患
- CI框架全局防止SQL注入(防止XSS攻击)的方法
- CI框架输出sql语句
- 三步堵死网站被SQL注入的隐患
- 3个步骤结束网站恶梦-SQL注入隐患
- 3个步骤结束网站恶梦----SQL注入隐患
- 三步堵死被SQL注入的隐患!
- 三个步骤 堵死网站被SQL注入的隐患
- ci框架中的图片上传
- CI框架插入多条sql记录
- php ci框架 sql查询缓存
- 去掉 CI 框架中的 index.php
- ci框架中的url路由规则
- CI框架入门中的简单MVC例子
- CI框架获取url中的参数
- CI框架中的图片上传功能
- Java 面试题问与答:编译时与运行时
- BZOJ2006【主席树】【优先队列】
- 蓝桥杯 ALGO-94 新生舞会(结构体)
- struts2,spring,hibernate三大框架整合
- java Pattern和Matcher详解
- CI框架中的SQL注入隐患
- Direct3D 12 尝鲜(三): Pipeline State Object
- 黑马程序员 OC基础: 常用语法
- 初学PHP如何在浏览器上显示东西
- 计算机组成原理--数制
- GDB使用方法
- 17x^2+16xy+17y^2=2250000(爱心函数)canvas实现代码(效果如图)
- Java操作符总结
- [LinkedIn] Array of products of all other numbers (except/without the current number ) (no division)