泰州市统计局网站建设方案,陕西网站开发公司电话,医院网站建设原理,无锡公司网站建设服务本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患。分享给大家供大家参考#xff0c;具体如下#xff1a;php CI框架中URL特殊字符有很多是不支持的#xff0c;导致像c#xff0c;括号这些常用的分类#xff0c;字符都无法正常显示很头痛#xff0c;而在…本文实例分析了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 wildcardsif ($like TRUE){$str str_replace(array(%, _), array(\\%, \\_), $str);}return $str;}该方法仅仅是调用了一些转义函数并对like参数进行过滤。如果查询的变量没有被单引号包裹那么就无法进行保护ci 框架默认的过滤函数是escape xx. $this-db-escape ( $xxx ).xx由于数组的$key过滤不严直接带入SQL查询的漏洞屡见不鲜:$arr array(name2 and 12,hello2););输出结果Array([name] 2\ and 12[hello union select ] 2)如果真实sql语句传入上面两个参数合并起来就可以查询出所有信息了属于sql注入了更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《phpmysql数据库操作入门教程》及《php常见数据库操作技巧汇总》希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。您可能感兴趣的文章:浅谈php(codeigniter)安全性注意事项CodeIgniter安全相关设置汇总CodeIgniter框架过滤HTML危险代码CodeIgniter删除和设置Cookie的方法Codeigniter实现处理用户登录验证后的URL跳转CodeIgniter框架URL路由总结解析如何去掉CodeIgniter URL中的index.phpCodeIgniter针对lighttpd服务器URL重写的方法