所謂sql注入,就是通過把sql命令插入到web表單中**[此處涉及到sql注入的點]**提交最終達到欺騙伺服器執行惡意的sql命令。
具體來說,它是利用現有的web應用程式,將(惡意的)sql命令注入到後台資料庫引擎,它可以通過在web表單中輸入(惡意)
sql語句得到乙個存在安全漏洞的**上的資料庫,而不是按照設計者意圖去執行sql語句.
通常情況下,sql注入的位置包括:
(1)表單提交,主要是post請求,也包括get請求;
(2)url引數提交,主要為get請求引數;
(3)cookie引數提交;
(4)http請求頭部的一些可修改的值,比如referer、user_agent等;
(5)一些邊緣的輸入點,比如.***檔案的一些檔案資訊等。
(1)所有的查詢語句都使用資料庫提供的引數化查詢介面,引數化的語句使用引數而不是將使用者輸入變數嵌入到sql語句中。當前幾乎所有的資料庫系統都提供了引數化sql語句執行介面,使用此介面可以非常有效的防止sql注入攻擊。
(2)對進入資料庫的特殊字元(』」<>&*;等)進行轉義處理,或編碼轉換。
(3)確認每種資料的型別,比如數字型的資料就必須是數字,資料庫中的儲存字段必須對應為int型。
(4)資料長度應該嚴格規定,能在一定程度上防止比較長的sql注入語句無法正確執行。
(5)**每個資料層的編碼統一,建議全部使用utf-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制**使用者的資料庫的操作許可權,給此使用者提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免**顯示sql錯誤資訊,比如型別錯誤、欄位不匹配等,防止攻擊者利用這些錯誤資訊進行一些判斷。
(8)在**發布之前建議使用一些專業的sql注入檢測工具進行檢測,及時修補這些sql注入漏洞。
(1)資料庫內的資訊全部被外界竊取
(2)資料內容被篡改
(3)登入認證被繞過
(4)其他,例如伺服器上的檔案被讀取或修改/伺服器上的程式被執行
owasp top 10 SQL注入之報錯注入
什麼是報錯注入 報錯注入是一種在進行sql注入,頁面回顯資料庫報錯資訊時所進行漏洞利用的一種手法。報錯注入的函式一 floor 向下取整 函式樣式 floor num 引數意義 num 數值 報錯語句 and select 1 from select count concat 0x22,databa...
SQL注入漏洞
sql注入漏洞曾經是web應用程式的噩夢,cms bbs blog無一不曾受其害。sql注入的原理 以往在web應用程式訪問資料庫時一般是採取拼接字串的形式,比如登入的時候就是根據使用者名稱和密碼去查詢 string sql select top 1 from user where username...
SQL注入漏洞
sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令,比如先前的很多影視 洩露vip會員密碼大多就是通過web表單遞交查詢字元暴出的,這類表單特別容易受到sql注入式攻擊 sql注入的發生 當應用程式使用輸入內容來構造動態sq...