Maison  >  Article  >  Java  >  Comment empêcher l’injection SQL dans jdbc ?

Comment empêcher l’injection SQL dans jdbc ?

藏色散人
藏色散人original
2019-05-06 14:06:057522parcourir

Comment empêcher l’injection SQL dans jdbc ?

JDBC-Prévention des vulnérabilités d'injection SQL

L'utilisation de la précompilation peut prévenir efficacement les vulnérabilités d'injection SQL.

Raison : ne peut pas empêcher efficacement les vulnérabilités d'injection SQL dans l'instruction car l'utilisateur peut transmettre certains caractères spéciaux lors de la transmission de paramètres, tels que des guillemets simples '  , ou -- cela affectera notre instruction SQL.

Donc, utiliser l'espace réservé dans la précompilation, c'est-à-dire ?, peut résoudre efficacement ce problème.

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);
}
}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn