資源描述:
《sql注入原理及php防注入代碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1、基本概念php.ini文件中的一個設(shè)置:magic_quotes_gpc。此設(shè)置默認(rèn)是關(guān)閉的,即magic_quotes_gpc=off,一般將其設(shè)置為on。為on時,php應(yīng)用程序服務(wù)器將自動把用戶提交的對SQL的查詢進(jìn)行轉(zhuǎn)換,比如吧“’”轉(zhuǎn)化為“’”,它的作用是在敏感字符前加一個反斜杠“”,這對防止SQL注入有重大作用。函數(shù)addslashes()作用是在所有外部數(shù)據(jù)敏感字符’(單引號)、(反斜杠)、NUL的前面加上反斜杠。函數(shù)intval()作用是將數(shù)據(jù)類型轉(zhuǎn)化為整型。注意:在新版本PHP中,即使magic_quotes_gpc設(shè)成了on,在
2、使用addslashes()函數(shù)來處理時不會出現(xiàn)沖突的,可以大膽使用。2、sql漏洞注入原理基礎(chǔ)過濾和二次過濾一般情況下,在獲得用戶提交的參數(shù)時,首先要進(jìn)行一些基礎(chǔ)性的過濾,然后再根據(jù)程序的響應(yīng)的功能以及用戶輸入進(jìn)行二次過濾。在所有用戶輸入處對敏感字符進(jìn)行過濾,敏感字符如下:"\","&","","'","/","*",",","<",">","r","t","","#","$","(",")","%","@","+","?",";","^","--","and","or","select","update"在javascript中使用代碼過濾敏感
3、字符串:標(biāo)題頁functioncheck(inputStr){if(typeof(inputStr)!="string"){returninputStr;}//判斷是否是字符串類型vartmpValue=inputStr;//以下搜索字符串中的特殊字符,如果存在,則替換成""while(tmpValue.indexOf(';')>-1){tmpValue=tmpValue.re
4、place(';','');}while(tmpValue.indexOf('<')>-1){tmpValue=tmpValue.replace('<','');}while(tmpValue.indexOf('>')>-1){tmpValue=tmpValue.replace('>','');}while(tmpValue.indexOf('--')>-1){tmpValue=tmpValue.replace('--','');}while(tmpValue.indexOf(",")>-1){tmpValue=tmpValue.replace(",",""
5、);}while(tmpValue.indexOf("'")>-1){tmpValue=tmpValue.replace("'","");}while(tmpValue.indexOf("?")>-1){tmpValue=tmpValue.replace("?","");}document.getElementById("txt1").value=tmpValue;//重新顯示更改后的變量}
6、=zhang'andpasswrod=2"style="width:392px">