CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
框架(架构)  /  管理员 发布于 6年前   290
本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患。分享给大家供大家参考,具体如下: php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这种特殊字符又很容易给sql注入 在默认的config配置基础上加上:+=()特殊字符 在CI框架中,尽量使用AR类进行数据库查询是比较靠谱的,因为在底层会帮助使用者进行一次有效的转义,但也仅仅是转义而已。 过滤的方法是 该方法仅仅是调用了一些转义函数,并对like参数进行过滤。 如果查询的变量没有被单引号包裹,那么就无法进行保护 ci 框架默认的过滤函数是escape : 由于数组的 输出结果: Array( 如果真实sql语句传入上面两个参数合并起来就可以查询出所有信息了,属于sql注入了 更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。#$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';$config['permitted_uri_chars'] ='a-z 0-9~%.:_\-\+=()';
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;}
xx". $this->db->escape ( $xxx )."xx
$key
过滤不严直接带入SQL查询的漏洞屡见不鲜:$arr = array( 'name'=>"2' and 1=2", "hello'"=>"2"););
[name] => 2\' and 1=2
[hello' union select ] => 2
)您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号