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; //返回处理结果
  • 相关阅读:
    [ Docker ] 基础安装使用及架构
    [ Docker ] 基础概念
    Nginx
    ELK
    SVN + Jenkins 构建自动部署
    Zabbix
    ELK
    ELK 部署文档
    vue.js在visual studio 2017下的安装
    vue.js是什么
  • 原文地址:https://www.cnblogs.com/houyu/p/14124942.html
Copyright © 2011-2022 走看看