從零開始認識SQL注入 ,什麼是SQL注入?sql注入就是本來我只有我能操作資料庫,本來只是讓你輸入內容就走,而你卻輸入命令,從而在我不知情下操作資料庫
SQL注入
1.什麼是SQL注入
sql注入就是本來我只有我能操作資料庫,本來只是讓你輸入內容就走,而你卻輸入命令,從而在我不知情下操作資料庫
2.漏洞的修複
動態拼接就是在java中java變數和sql語句混合使用:select * from user where userName=’”+userName+”’ and password = ‘”+password”’
3.參數化sql使用案例
//建立資料連線 conn=ds.getConnection(); //1.設定prepareStatement帶預留位置的sql語句 PreparedStatement ptmt = conn.prepareStatement("select * from user where userName = ? and password = ?"); ptmt.setString(1, "張三"); //2.設定參數 ptmt.setString(2, "123456"); rs=ptmt.executeQuery(); while(rs.next()){ System.out.println("登陸成功"); return; } System.out.println("登陸失敗");
參數化特點:
1.設定preparedStatement帶預留位置的sql語句
statement執行sql語句的方式:
stmt=conn.createStatement();rs=stmt.executeQuery("select userName from user");
2.設定參數
PerparedStatement繼承於Statement,這裡主要使用的使他參數化sql的特性。
轉:https://blog.csdn.net/qq_30258957/article/details/78145885
加:1.都是用來執行SQL的 PreparedStatement extends Statement;
2.Statement適合執行靜態(無條件)SQL PreparedStatement適合執行動態(有條件)SQL;
3.PreparedStatement可以避免注入攻擊;
相關文章:
一個自認為很安全的PHP防SQL注入 求破解
深入瞭解SQL注入和預防措施
相關視頻:
防禦sql注入-PHP實戰商城開發視頻教