CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-11 11:22:50 浏览: 评论:0
本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患,分享给大家供大家参考,具体如下:
php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这种特殊字符又很容易给sql注入
在默认的config配置基础上加上:+=()特殊字符
#$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['permitted_uri_chars'] ='a-z 0-9~%.:_\-\+=()';
在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参数进行过滤。
如果查询的变量没有被单引号包裹,那么就无法进行保护
ci 框架默认的过滤函数是escape :
xx". $this->db->escape ( $xxx )."xx
由于数组的$key过滤不严直接带入SQL查询的漏洞屡见不鲜:
- $arr = array(
- 'name'=>"2' and 1=2",
- "hello'"=>"2");
- );
输出结果:
- Array(
- [name] => 2\' and 1=2
- [hello' union select ] => 2
- )
如果真实sql语句传入上面两个参数合并起来就可以查询出所有信息了,属于sql注入了。
Tags: CodeIgniter URL特殊字符
相关文章
- ·CodeIgniter3.0+框架自定义异常处理的方法介绍(2020-02-08)
- ·解决Codeigniter不能上传rar和zip压缩包问题(2020-10-19)
- ·CodeIgniter框架中_remap()使用方法2例(2020-10-20)
- ·CI(CodeIgniter)框架中的增删改查操作(2021-02-11)
- ·CodeIgniter启用缓存和清除缓存的方法(2021-02-13)
- ·让CodeIgniter数据库缓存自动过期的处理的方法(2021-02-13)
- ·Codeigniter生成Excel文档的简单方法(2021-02-13)
- ·Codeigniter+PHPExcel实现导出数据到Excel文件(2021-02-13)
- ·Codeigniter实现智能裁剪图片的方法(2021-02-13)
- ·Codeigniter整合Tank Auth权限类库详解(2021-02-18)
- ·新浪SAE云平台下使用codeigniter的数据库配置(2021-02-18)
- ·Codeigniter实现处理用户登录验证后的URL跳转(2021-02-18)
- ·让codeigniter与swfupload整合的最佳解决方案(2021-02-18)
- ·Codeigniter实现多文件上传并创建多个缩略图(2021-02-18)
- ·让CodeIgniter的ellipsize()支持中文截断的方法(2021-02-18)
- ·CodeIgniter框架过滤HTML危险代码(2021-02-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)