JDBC-防止sql注入漏洞
#使用預編譯可有效防止sql的注入漏洞。
原因:在statement中不能夠有效的防止sql的注入漏洞,在於用戶傳入參數的時候可能會傳入一些特殊字元,比如單引號' ' ,或者是-- 這種會影響到我們的sql語句.
所以使用預編譯中的佔位符,也就是?,可以有效的處理這一問題.
public class Prepared { @Test public void papa(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ //注册驱动 // Class.forName("com.mysql.jdbc.Driver"); //建立连接 // conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","dumy"); conn =JDBCUtils.getConnection(); //编写sql代码 //String sql = "select * from administer where id = ?"; String sql = "select * from administer where username = ? and password =?"; //预编译 pstmt = conn.prepareStatement(sql); //给? 赋值 pstmt.setString(1, "ddd"); pstmt.setString(2, "123"); rs= pstmt.executeQuery(); while(rs.next()){ System.out.println("登录成功"); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(pstmt, conn, rs); } } }
以上是jdbc怎麼防止sql注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!