JDBC – Verhinderung von SQL-Injection-Schwachstellen
Durch die Verwendung der Vorkompilierung können SQL-Injection-Schwachstellen effektiv verhindert werden.
Grund: kann SQL-Injection-Schwachstellen in der Anweisung nicht wirksam verhindern, da der Benutzer bei der Übergabe von Parametern möglicherweise einige Sonderzeichen übergibt, z. B. einfache Anführungszeichen '' oder -- Dies wirkt sich auf unsere SQL-Anweisung aus.
Die Verwendung des Platzhalters also in der Vorkompilierung kann dieses Problem effektiv lösen.
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); } } }
Das obige ist der detaillierte Inhalt vonWie kann man SQL-Injection in JDBC verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!