萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP CodeIgniter學習筆記詳解

PHP CodeIgniter學習筆記詳解

今天做的是個簡單的表明表頁面,前端我用的是Bootstrap。沒辦法,自己不懂美工,也只有用別人的工具。BS真的很漂亮,而且插件豐富,不愧是twitter工程師弄出來的東西。

(中文官網:http://www.bootcss.com)好的東西大家都喜歡,但是它對IE6-9的兼容幾乎是0。大家也懂的,國外基本是不使用這幾款浏覽器了。不過在中國,IE依然占有很高的市場份額。所以,有人開發了一款叫做BSIE的Bootstrap插件,美其名曰鄙視IE,使用方法也相當簡單。好像有點跑題,後端我用的是CodeIgniter,它是基於PHP的開源框架。CI是今天的正題。

 

  因為CI對於數據的過濾函數只有xss_clean(),(不知道是不是自己才疏學淺,總之沒有找到其他的過濾函數)而今天的項目涉及到接收用戶數據,然後提交數據庫的操作。沒有針對SQL語句的過濾,使得這一操作變得很危險。有點蛋蛋的憂桑,我想到的方法是改寫CI的xss_clean()函數,使之具備過濾SQL注入語句的功能;一來改起來方便,二來過濾數據的時候不用嵌套兩個函數。說干就干,在CI/system/core/目錄下找到secure.php文件,找到xss_clean()函數的申明位置,在最後加上這麼一段東西。

PHP代碼

 代碼如下 復制代碼 $str = str_replace("_","x",$str);    
$str = str_replace("%","x",$str);    
$str = str_replace(""","x",$str);    
$str = str_replace("'","x",$str);    
$str = str_replace("select","x",$str);    
$str = str_replace("update","x",$str);    
$str = str_replace("insert","x",$str);   
$str = str_replace("set","x",$str);   
$str = str_replace("where","x",$str);   
$str = str_replace("from","x",$str);   
$str = str_replace("alert","x",$str);    
$str = str_replace("like","x",$str);   
return $str;  

 

  這樣差不多能避免一般的SQL注入了。

copyright © 萬盛學電腦網 all rights reserved