Heim  >  Artikel  >  Java  >  Wie kann man SQL-Injection in JDBC verhindern?

Wie kann man SQL-Injection in JDBC verhindern?

藏色散人
藏色散人Original
2019-05-06 14:06:057538Durchsuche

Wie kann man SQL-Injection in JDBC verhindern?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn