原理:
sql注入是因為後台sql語句拼接了使用者輸入的惡意資料,而web應用沒有對輸入的資料合法性進行判斷和過濾。攻擊者可以通過構造不同sql語句來實現對資料庫的任意操控,例如進行增刪改查等操作。
分類:一、可分為平台層注入,也就是由不安全的資料庫配置或者資料平台的漏洞所導致,例如mysql有些版本是存在版本漏洞可以利用的。**層注入主要是由於開發者對輸入資訊未進行嚴格的過濾處理導致的。
二、依據注入點型別分類
數字型別的注入
字串型別的注入
搜尋型注入
三、詳細點可分為:
盲注寬位元組注入
二次注入
檔案讀寫注入
堆疊注入
dns回顯注入
聯合查詢注入
報錯注入
時間按注入
等等sql注入的預防
(1)預編譯(preparedstatement)
原理:sql注入只sql語句的編譯過程有破壞作用,而preparedstatement已經預編譯好了,執行階段只是把輸入串作為資料處理。而不再對sql語句進行解析。
(2)使用正規表示式過濾
通過正規表示式對危險字串進行過濾,也就是基於黑名單的方法來過濾。這種方式雖然會過濾掉已經禁用的字串,但黑客還是想盡辦法進行繞過,還是存在繞過風險。
(3)使用web應用防火牆。
(4)將web應用中與資料庫互動的使用者和資料庫管理員嚴格分離,不允許其擁有寫、刪的許可權。
SQL注入原理及其預防
0x00什麼是sql注入 首先你得知道什麼是sql,結構化查詢語言 structured query language 簡稱sql 發音 es kju el s q l 是一種特殊目的的程式語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統 同時也是資料庫指令碼檔案的副...
sql注入預防
sql注入即是指web應用程式對使用者輸入資料的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的sql語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊。1.簡單又有效的方法 prepar...
sql注入預防
在我們登陸驗證時會發現sql注入的現象。1.sql注入發生原因 因為如果使用者在使用者名稱上輸入的是 or 1 1 時,我們得到的sql語句是select from shop user where username or 1 1 and password d41d8cd98f00b204e98009...