zoukankan      html  css  js  c++  java
  • 在JDBC中使用PreparedStatement对象防止sql注入

    在JDBC中,可以得知账号名并在账号名加入如“#”,“-- ”,’or ‘1=1,进行拼接,改变sql语句的语义,使不需要密码也可以登录。

    JDBC前两步不变

    1、注册数据库驱动

    2、获取数据库连接

    3、获取传输器是将sql语句中的参数改为可变参数(?)

    例如

    1 String sql = "select * from user where username=? and password=?";
    2 PreparedStatement ps = conn.prepareStatement( sql ); 

    //将Sql与语句中的参数值发送给服务器

    1 ps.setString( 1 , user );
    2 ps.setString( 2 , psw ); 

    4、执行Sql语句

    1 ResultSet rs = ps.executeQuery(); //这里不要再传SQL,因为 上面已经传过了


    5、处理结果

    1 boolean hasUser = rs.next(); 


    6、释放资源

    1 rs.close();    
    2 ps.close();    
    3 conn.close();    
    4 return hasUser; //返回处理结果
  • 相关阅读:
    奈良有鹿
    Luogu P1892 团伙
    Luogu P1330 封锁阳光大学
    java读取property文件
    collection
    testNG学习
    maven项目学习
    Android.mk详解二
    sdk开发经验
    工作经验
  • 原文地址:https://www.cnblogs.com/houyu/p/14124942.html
Copyright © 2011-2022 走看看