JDBC-SQL 주입 취약점 방지
사전 컴파일을 사용하면 SQL 주입 취약점을 효과적으로 방지할 수 있습니다.
이유: 사용자가 작은따옴표 ''와 같은 매개 변수를 전달할 때 일부 특수 문자를 전달할 수 있기 때문에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!