sql注入原理就是用戶輸入動態(tài)的構(gòu)造了意外sql語句,造成了意外結(jié)果,是攻擊者有機可乘
SQL注入攻擊指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。
根據(jù)相關(guān)技術(shù)原理,SQL注入可以分為平臺層注入和代碼層注入。前者由不安全的數(shù)據(jù)庫配置或數(shù)據(jù)庫平臺的漏洞所致;后者主要是由于程序員對輸入未進行細致地過濾,從而執(zhí)行了非法的數(shù)據(jù)查詢。基于此,SQL注入的產(chǎn)生原因通常表現(xiàn)在以下幾方面:①不當(dāng)?shù)念愋吞幚恚虎诓话踩臄?shù)據(jù)庫配置;③不合理的查詢集處理;④不當(dāng)?shù)腻e誤處理;⑤轉(zhuǎn)義字符處理不合適;⑥多個提交處理不當(dāng)。
1.參數(shù)驗證
2.特殊字符過濾
3.使用參數(shù)化語句,不要拼接sql
4.編碼輸出
5.平臺過濾
總之就是要做好過濾與編碼并使用參數(shù)化語句,這樣sql注入漏洞基本能夠解決呢
來源:http://www.cnblogs.com/huzi007/p/6370732.html