Java使用JDBC开发 之 SQL注入攻击和解决方案

本文介绍了在Java使用JDBC进行数据库操作时遇到的SQL注入攻击问题,通过示例展示了如何利用`Statement`执行SQL导致的安全隐患。为了解决这一问题,文章详细解释了如何使用`PreparedStatement`进行预编译,以防止注入攻击,并提供了相关代码示例,确保高效且安全的执行SQL查询。
摘要由CSDN通过智能技术生成

//2.获得数据库连接 DriverManager类中静态方法

//static Connection getConnection(String url, String user, String password)

//返回值是Connection接口的实现类,在mysql驱动程序

//url: 数据库地址 jdbc:mysql://连接主机IP:端口号//数据库名字

String url = “jdbc:mysql://localhost:3306/mylogon”;

String username = “root”;

String password = “123456”;

Connection con = DriverManager.getConnection(url,username,password);

//3.获得语句执行平台

//Statement createStatement() 获取Statement对象,将SQL语句发送到数据库

Statement stat = con.createStatement();

//4.从控制台输入用户名和密码

Scanner sc = new Scanner(System.in);

String user = sc.nextLine();

String key = sc.nextLine();

//String sql1 = “select * from users where username=‘qwer’ and password=‘1234535’ or 1=1”;

String sql2 = “select * from users where username='”+ user +“‘and password=’”+ key +“'”;

System.out.prin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值