今天做的是個(gè)簡(jiǎn)單的表明表頁面,前端我用的是Bootstrap.沒辦法,自己不懂美工,也只有用別人的工具.BS真的很漂亮,而且插件豐富,不愧是twitter工程師弄出來的東西.
好的東西大家都喜歡,但是它對(duì)IE6-9的兼容幾乎是0.大家也懂的,國外基本是不使用這幾款瀏覽器了,不過在中國,IE依然占有很高的市場(chǎng)份額.所以,有人開發(fā)了一款叫做BSIE的Bootstrap插件,美其名曰鄙視IE,使用方法也相當(dāng)簡(jiǎn)單,好像有點(diǎn)跑題,后端我用的是CodeIgniter,它是基于PHP的開源框架.CI是今天的正題,因?yàn)镃I對(duì)于數(shù)據(jù)的過濾函數(shù)只有xss_clean(),(不知道是不是自己才疏學(xué)淺,總之沒有找到其他的過濾函數(shù))而今天的項(xiàng)目涉及到接收用戶數(shù)據(jù),然后提交數(shù)據(jù)庫的操作.沒有針對(duì)SQL語句的過濾,使得這一操作變得很危險(xiǎn).有點(diǎn)蛋蛋的憂桑,我想到的方法是改寫CI的xss_clean()函數(shù),使之具備過濾SQL注入語句的功能;一來改起來方便,二來過濾數(shù)據(jù)的時(shí)候不用嵌套兩個(gè)函數(shù).說干就干,在CI/system/core/目錄下找到secure.php文件,找到xss_clean()函數(shù)的申明位置,在最后加上這么一段東西.
PHP實(shí)例代碼如下:
- $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注入了。
新聞熱點(diǎn)
疑難解答