1. 程式人生 > >sql注入原理【java】

sql注入原理【java】

String sql=”select * from judy88 where ” + “pname=’” + username + “’ and password=’” + password + “’”;
如果是加號必須用”“號 進行括起來。
這裡寫圖片描述

解決注入問題。分為3個方法
1過濾使用者輸入的資料中是否包含非法字元
2分步校驗,先使用使用者名稱查詢如果有次使用者名稱然後再使用密碼檢驗
3使用preparedStatement

PreparedStatement是什麼?
他叫做預編譯宣告
他是Statement的子介面。可以使用PreparedStatement來替換Statement
PreparedStatement的好處是什麼?
1防止Sql攻擊
2提高程式碼的可讀性,可維護性
3提高效率

Preparestatement的使用
1使用connection的preparestatement(string sql)建立他就是讓一條sql模板繫結
2呼叫Preparestatement的setxxx()系列方法為問號設定值
這裡寫圖片描述

3呼叫executeUpdate()或者executeQuery()方法,

解決了減少拼接問題的。

如果使用預編譯。進行執行sql語句的過程
1註冊
2連線
3語句,引數使用的是?
4使用預編譯,引數裡面是sql語句
5使用與編輯傳過去引數,引數型別如果是int則使用的是setint,如果是string則使用的是setString
6進行查詢操作,把查詢的結果付給resultset
7執行next();