国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

CI(CodeIgniter)框架中URL特殊字符處理與SQL注入隱患分析

2024-05-05 00:07:01
字體:
來源:轉載
供稿:網友

本文實例分析了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注入了

希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 家居| 康乐县| 鄂伦春自治旗| 彩票| 安塞县| 康平县| 白河县| 平和县| 札达县| 沿河| 西城区| 宁明县| 台中市| 安图县| 南通市| 临沂市| 集贤县| 鲜城| 华亭县| 宁陕县| 南平市| 虹口区| 黔东| 如皋市| 潮州市| 巴林右旗| 洪雅县| 阆中市| 林州市| 云浮市| 县级市| 商水县| 全椒县| 德庆县| 北海市| 黄山市| 新宁县| 顺昌县| 彭州市| 锡林浩特市| 琼中|