什麼是SQL注入

2021-09-25 03:59:15 字數 1262 閱讀 2107

本文純屬以個人的角度去看待sql注入,有些地方不足,請各位讀者指點批評

什麼sql注入,為什麼會發生sql注入,sql注入的危害,怎樣預防sql注入

sql注入(注入結構化查詢語言)

所謂sql注入,就是通過把sql命令插入到web表單中[此處涉及到sql注入的點]提交最終達到欺騙伺服器執行惡意的sql命令。

具體來說,它是利用現有的web應用程式,將(惡意的)sql命令注入到後台資料庫引擎,它可以通過在web表單中輸入(惡意)sql語句得到乙個存在安全漏洞的**上的資料庫,而不是按照設計者意圖去執行sql語句.

簡單的解釋:由於**處理邏輯不嚴謹,攻擊者可以注入惡意的sql語句,使原本的意思產生歧義,從而造成危害

因為應用程式需要和後端資料庫引擎進行互動,例如,在前端接收使用者輸入的查詢語句時,因為其中的**不嚴謹,未進行相應的過濾,導致使用者的惡意輸入引起資料庫返回異常,從而導致攻擊者可以拼接相應的資料庫語句進行sql注入,提取想要的資訊.

資料庫內的資訊全部被外界竊取

資料內容被篡改

登入認證被繞過

其他,例如伺服器上的檔案被讀取或修改/伺服器上的程式被執行

儘管表現的形式和利用的手段的複雜程度各不相同,但是,sql注入仍然是最容易防禦的漏洞之一

過濾危險字元,使用預編譯語言(引數化查詢)

注意,所有安全都是因為人,有人說可以使用儲存過程來完成所有的資料庫訪問,但是要考慮到使用儲存過程對程式效能的要求,同時要考慮到編寫的儲存過程本身是否存在問題

引數化查詢:

a:應用程式指定查詢的結構,為使用者輸入的每乙個資料預留佔位符

b:應用程式指定每一位佔位符的內容

注意:開發人員會忽略二階注入這一點,所以要規定整個應用程式中都使用引數化查詢更安全

a:降低資料的許可權,盡可能使用最低許可權的使用者

b:刪除資料庫不常用的大量預設功能

c:及時打補丁

sql注入請求方式:

getpost

sql注入的型別

盲注顯注

sql注入的主要點

資料提交引數

cookie

user-agent

referer

sql注入的其他攻擊方式:

堆疊查詢注入攻擊

二次注入攻擊

cookie注入攻擊

寬位元組注入攻擊

xff注入攻擊

base64注入攻擊

sql注入的某些繞過方式

大小寫繞過技術

雙寫繞過技術

編碼繞過技術

內聯注釋繞過技術

什麼是sql注入,怎麼防止SQL注入?

防止sql注入 什麼是sql注入?如何防止sql注入?sql語句引數化 防止sql注入的示例 from pymysql import connect def main find name input 請輸 物品名稱 建立connection連線 conn connect host localhost...

什麼是sql注入 如何防止sql注入

sql注入 利用現有應用程式,將 惡意 的sql命令注入到後台資料庫執行一些惡意的操作 造成sql注入的原因是因為程式沒有有效過濾使用者的輸入,使攻擊者成功的向伺服器提交惡意的sql查詢 程式在接收後錯誤的將攻擊者的輸入作為查詢語句的一部分執行,導致原始的查詢邏輯被改變,額外的執行了攻擊者精心構造的...

什麼是SQL注入以及如何防止SQL注入

case 1 模擬使用者登陸案例 1 準備資料 use jt db create table user id int primary key auto increment,username varchar 50 password varchar 50 insert into user values ...