防止SQL注入以及mysqli的預處理

2021-09-02 18:41:55 字數 604 閱讀 6232

當應用程式使用輸入內容來構造sql語句訪問資料庫時,會發生sql注入攻擊。下面就來介紹一下防止sql注入的方法。

1.對使用者的輸入進行驗證,可以通過正規表示式,或者限制長度,對單引號等進行轉換。

2.永遠不要使用動態拼裝sql。可以使用引數化的sql或者直接使用儲存過程進行資料查詢和儲存

例:insert into user(name,password,email) values(?,?,?)

3.永遠不要使用管理許可權連線資料庫,為每個應用使用單獨的許可權,有限的連線資料庫

4.不要把機密資訊直接存放,加密或者hash掉密碼和使用者的敏感資訊

5.應用的異常資訊應該給出盡可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝

6.檢測sql注入的方法一般採用輔助軟體或**平台來檢測。

mysqli的預處理

在mysqli操作中常常會涉及到他的三個類:mysqli類,mysql_stmt類,mysqli_result類。預處理主要是利用mysql_stmt類完成。預處理是一種重要的防止sql注入的手段。

工作原理

判斷以及防止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 ...

SQL注入基本型別以及如何防止sql注入

注入型別 1.數字注入 select from users where name jack and password 1 or 1 1 password 2.字串注入 select from user where name jack and password sdjakfjsadklfjklsdfd...