今天做的是個簡單的表明表頁面,前端我用的是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注入了。
http://www.bkjia.com/PHPjc/628693.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628693.htmlTechArticle今天做的是個簡單的表明表頁面,前端我用的是Bootstrap。沒辦法,自己不懂美工,也只有用別人的工具。BS真的很漂亮,而且外掛程式豐富,不愧...