PHP CodeIgniter學習筆記詳解
來源:程序員人生 發(fā)布時間:2014-04-18 14:50:53 閱讀次數:3857次
今天做的是個簡單的表明表頁面,前端我用的是Bootstrap.沒辦法,自己不懂美工,也只有用別人的工具.BS真的很漂亮,而且插件豐富,不愧是twitter工程師弄出來的東西.
好的東西大家都喜歡,但是它對IE6-9的兼容幾乎是0.大家也懂的,國外基本是不使用這幾款瀏覽器了,不過在中國,IE依然占有很高的市場份額.所以,有人開發(fā)了一款叫做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注入了。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈