1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
      <output id="hzk7v"></output>
    2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
    3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

      CI£¨CodeIgniter£©框架中URL特殊字符处理与SQL注入隐患分析

       更新时间£º2019年02月28日 10:59:27   作者£º流风£¬飘然的风   我要评论

      这篇文章主要介绍了CI£¨CodeIgniter£©框架中URL特殊字符处理与SQL注入隐患,结合实例形式分析了CodeIgniter框架中针对特殊字符的过滤及SQL注入隐患的相关原理,需要的朋友可以参考下

      本文实例分析了CI£¨CodeIgniter£©框架中URL特殊字符处理与SQL注入隐患¡£分享给大家供大家参考£¬具体如下£º

      php CI框架中URL特殊字符有很多是不支持的£¬导致像c++£¬括号这些常用的分类£¬字符都无法正常显示很头痛£¬而在配置里增加单引号' 反?#22791;Ü\ 这种特殊字符又很容易给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参数进行过滤¡£

      如果查询的变量没有被单引号包裹£¬那么就无法进?#26012;?#25252;

      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注入了

      更多关于CodeIgniter相关内容?#34892;?#36259;的读者可查看本站专题£º¡¶codeigniter入门教程¡·¡¢¡¶CI(CodeIgniter)框架进阶教程¡·¡¢¡¶php优秀开发框架总结¡·¡¢¡¶ThinkPHP入门教程¡·¡¢¡¶ThinkPHP常用方法总结¡·¡¢¡¶Zend FrameWork框架入门教程¡·¡¢¡¶php面向对象程序设计入门教程¡·¡¢¡¶php+mysql数据库操作入门教程¡·及¡¶php常见数据库操作技巧汇总¡·

      希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助¡£

      相关文章

      • thinkPHP5.0框架环境变量配置方法

        thinkPHP5.0框架环境变量配置方法

        这篇文章主要介绍了thinkPHP5.0框架环境变量配置方法,结合实例形式分析了thinkPHP5.0中环境变量的功能¡¢定义¡¢配置与相关注意事项,需要的朋友可以参考下
        2017-03-03
      • Linux操作系统安装LAMP环境

        Linux操作系统安装LAMP环境

        本文给大家介绍的是在Linux操作系统安装LAMP环境的方法和?#38454;à£?#21313;分的详细£¬有需要的小伙伴可以参考下¡£
        2015-06-06
      • Yii2主题(Theme)用法详解

        Yii2主题(Theme)用法详解

        这篇文章主要介绍了Yii2主题(Theme)用法,结合实例形式分析了Yii2主题(Theme)的配置方式¡¢函数与相关属性的使用技巧,需要的朋友可以参考下
        2016-07-07
      • php curl常用的5个经典例子

        php curl常用的5个经典例子

        下面小编就为大家带来一篇php curl常用的5个经典例子¡£小编觉得挺不错的£¬现在就分享给大家£¬也给大家做个参考¡£一起跟随小编过来看看吧
        2017-01-01
      • 如何通过View::first使用Laravel Blade的动态模板详解

        如何通过View::first使用Laravel Blade的动态模板详解

        这篇文章主要给大家介绍了关于如何通过View::first使用Laravel Blade的动态模板的相关资?#24076;?#25991;中通过示例代码介绍的非常详细£¬对大家学习或者使用php具有一定的参考学习价值£¬需要的朋友们下面随着小编来一起看看吧¡£
        2017-09-09
      • twig模板获取全局变量的方法

        twig模板获取全局变量的方法

        这篇文章主要介绍了twig模板获取全局变量的方法,结合实例形式分析了twig模板操作变量的常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
        2016-02-02
      • PHP仿博客园 个人博客£¨1£© 数据库与界面设计

        PHP仿博客园 个人博客£¨1£© 数据库与界面设计

        自学PHP大半年多了£¬断断续续地£¬但是最终还是坚定了我的想法£¬将PHP继续下去£¬所以写这个PHP的博客是为了找个稳定的 PHP工作£¬不求工资多高£¬但求一收留之地
        2013-07-07
      • php-msf源码详解

        php-msf源码详解

        这篇文章主要介绍了php-msf源码的意?#23478;?#21450;用法相关问题£¬有需要的朋友跟着参考学习下吧¡£
        2017-12-12
      • php文字水印和php?#35745;?#27700;印实现代码(二种加水印方法)

        php文字水印和php?#35745;?#27700;印实现代码(二种加水印方法)

        有时上传?#35745;?#26102;需要给网站加上水印£¬水印可以分为文字水印和?#35745;?#27700;印,下面就实现这二种水印
        2013-12-12
      • PHP?#22987;?#20043;£º日期函数的使用介绍

        PHP?#22987;?#20043;£º日期函数的使用介绍

        本篇文章小编将为大家介绍£¬PHP?#22987;?#20043;£º日期函数的使用¡£需要的朋友参考下
        2013-04-04

      最新评论

      3dÊÔ»úºÅÖвÊÍø

        1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
          <output id="hzk7v"></output>
        2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
        3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

            1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
              <output id="hzk7v"></output>
            2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
            3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>