加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JDBC的SQL注入漏洞分析和解决

发布时间:2020-12-15 07:19:16 所属栏目:Java 来源:网络整理
导读:1.1.1 SQL注入漏洞分析 1.1.2 SQL注入漏洞解决 需要采用PreparedStatement对象解决SQL注入漏洞。这个对象将SQL预先进行编译,使用?作为占位符。?所代表内容是SQL所固定。再次传入变量(包含SQL的关键字)。这个时候也不会识别这些关键字。 public class User
1.1.1 SQL注入漏洞分析


1.1.2 SQL注入漏洞解决

需要采用PreparedStatement对象解决SQL注入漏洞。这个对象将SQL预先进行编译,使用?作为占位符。?所代表内容是SQL所固定。再次传入变量(包含SQL的关键字)。这个时候也不会识别这些关键字。

public class UserDao {

?????????

????????public boolean login(String username,String password){

????????????????Connection conn = null;

????????????????PreparedStatement pstmt = null;

????????????????ResultSet rs = null;

????????????????// 定义一个变量:

????????????????boolean flag = false;

????????????????try{

????????????????????????// 获得连接:

????????????????????????conn = JDBCUtils.getConnection();

????????????????????????// 编写SQL语句:

????????????????????????String sql = "select * from user where username = ? and password = ?";

????????????????????????// 预编译SQL

????????????????????????pstmt = conn.prepareStatement(sql);

????????????????????????// 设置参数:

????????????????????????pstmt.setString(1,username);

????????????????????????pstmt.setString(2,password);

????????????????????????// 执行SQL语句:

????????????????????????rs = pstmt.executeQuery();

????????????????????????if(rs.next()){

????????????????????????????????// 说明根据用户名和密码可以查询到这条记录

????????????????????????????????flag = true;

????????????????????????}

????????????????}catch(Exception e){

????????????????????????e.printStackTrace();

????????????????}finally{

????????????????????????JDBCUtils.release(rs,pstmt,conn);

????????????????}

????????????????return flag;

????????}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读