国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广灵县| 新宁县| 海淀区| 正安县| 大英县| 黔南| 德保县| 纳雍县| 枣强县| 南陵县| 绥芬河市| 濉溪县| 临泉县| 仙桃市| 礼泉县| 中卫市| 张掖市| 田东县| 阿克| 昌吉市| 贵定县| 田东县| 博野县| 荆门市| 前郭尔| 新干县| 康定县| 那曲县| 吐鲁番市| 沙雅县| 平顺县| 晋宁县| 潜山县| 灌南县| 溧水县| 盐源县| 娄烦县| 全南县| 德钦县| 海丰县| 定结县|