sql注入原理 分類 預防

2021-10-21 11:40:58 字數 721 閱讀 9085

原理:

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...