日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

發布時間:2025/3/8 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例分析了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相關內容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《php優秀開發框架總結》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《Zend FrameWork框架入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

您可能感興趣的文章:淺談php(codeigniter)安全性注意事項

CodeIgniter安全相關設置匯總

CodeIgniter框架過濾HTML危險代碼

CodeIgniter刪除和設置Cookie的方法

Codeigniter實現處理用戶登錄驗證后的URL跳轉

CodeIgniter框架URL路由總結

解析如何去掉CodeIgniter URL中的index.php

CodeIgniter針對lighttpd服務器URL重寫的方法

總結

以上是生活随笔為你收集整理的ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。