資料庫的SQL注入

2021-09-26 05:10:08 字數 910 閱讀 6810

如果您通過網頁獲取使用者輸入的資料並將其插入乙個mysql資料庫,那麼就有可能發生sql注入安全的問題。

本章節將為大家介紹如何防止sql注入,並通過指令碼來過濾sql中注入的字元。

所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。

我們永遠不要信任使用者的輸入,我們必須認定使用者輸入的資料都是不安全的,我們都需要對使用者輸入的資料進行過濾處理。

以下例項中,輸入的使用者名稱必須為字母、數字及下劃線的組合,且使用者名稱長度為 8 到 20 個字元之間:

if (preg_match("/^\w$/", $_get['username'], $matches))

else

讓我們看下在沒有過濾特殊字元時,出現的sql情況:

// 設定$name 中插入了我們不需要的sql語句

$name = "qadir'; delete from users;";

mysqli_query($conn, "select * from users where name=''");

以上的注入語句中,我們沒有對 nam

e的變數

進行過濾

,name 的變數進行過濾,

name的變

量進行過

濾,name 中插入了我們不需要的sql語句,將刪除 users 表中的所有資料。

在php中的 mysqli_query() 是不允許執行多個 sql 語句的,但是在 sqlite 和 postgresql 是可以同時執行多條sql語句的,所以我們對這些使用者的資料需要進行嚴格的驗證。

防止sql注入,我們需要注意以下幾個要點:

關於資料庫的sql注入先寫到這裡,預知後事如何,且聽下回分解

mysql資料庫sql注入原理 SQL注入原理

結構化查詢語句 structured query language,縮寫 sql 是一種特殊的程式語言,用於資料庫中的標準資料查詢語言。sql注入 sql injection 是一種常見的web安全漏洞,攻擊者利用這個問題,可以訪問或者修改資料,或者利用潛在的資料庫漏洞進行攻擊。什麼是sql注入?s...

SQL注入原理 手工注入access資料庫

一 target sql注入原理 學習手工注入過程 二 實驗原理 通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的的查詢字串,最終達到欺騙伺服器執行惡意的sql命令 1 在結尾的鏈結中依次新增 和 and 1 1 和 and 1 2 判斷 是否存在注入點 2 新增語句 and exis...

SQL注入原理 手工注入access資料庫

sql注入原理 手工注入access資料庫 sql注入是通過將sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意sql指令的目的。1.判斷 是否有注入點。在以asp?id xx 任意數字 結尾的連線依次新增 若以上結果顯示 資料庫出錯 正常顯示 資料庫出錯 ...