防止SQL注入

SQL注入的原理:

1、SQL Injection:就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。

2、具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到後臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。

SQL注入的總體思路:
1.尋找到SQL注入的位置

2.判斷服務器類型和後臺數據庫類型

3.針對不通的服務器和數據庫特點進行SQL注入攻擊

防止SQL注入的原則:

1.永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,可以通過正則表達式,或限制長度,對單引號和雙”-“進行轉換等。

2.永遠不要使用動態拼裝SQL,可以使用參數化的SQL或者直接使用存儲過程進行數據查詢存取。

3.永遠不要使用管理員權限的數據庫連接,爲每個應用使用單獨的權限有限的數據庫連接。

4.不要把機密信息明文存放,請加密或者hash掉密碼和敏感的信息。

5.應用的異常信息應該給出儘可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝,把異常信息存放在獨立的表中。

SQL注入的解決方案:
1、校驗(前端校驗+後臺校驗)
2、信息加密
3、自定義sql對象
4、使用預編譯API(PreparedStatedment)
5、使用動態傳參的SQL形式
6、權限控制
7、數量控制

GitChat分享
如何成爲一個程序員麪霸

微信號:woliveintheworld
這裏寫圖片描述

本文參考:
1、http://blog.csdn.net/zhangyongqiang123/article/details/52768730
2、http://blog.csdn.net/stilling2006/article/details/8526458
3、http://blog.csdn.net/zhlu880516/article/details/2647831

發佈了82 篇原創文章 · 獲贊 14 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章