程序员开发实例大全宝库

网站首页 > 编程文章 正文

JDBC、SQL注入攻击原理以及解决方案

zazugpt 2024-09-08 11:24:25 编程文章 36 ℃ 0 评论

JDBC:java的数据库连接

JDBC本质是一套API,由开发公司定义的类和接口

这里使用mysql驱动,是一套类库,实现了接口

驱动程序类库,实现接口重写方法,由驱动程序操作数据库

JDBC操作步骤:

1.注册驱动

2.获得连接

3.获得语句执行平台

4.执行sql语句

5.处理结果

6.释放资源

1.导入jar包,可以在网上下载到,这里使用的是:mysql-connector-java-5.1.37-bin.jar

注册驱动:

2.获得连接:

3.获取语句执行平台

通过数据库连接对象,获取到sql语句的执行者对象

4.执行sql语句:

准备数据:

CREATE TABLE sort(
 sid INT PRIMARY KEY AUTO_INCREMENT,
 sname VARCHAR(100),
 sprice DOUBLE,
 sdesc VARCHAR(5000)
 );INSERT INTO sort(sname,sprice,sdesc) VALUES('家电',2000,'促销'),
('家具',8900,'价格上涨'),
('玩具',300,'赚钱'),
('生鲜',500.99,'促销'),
('服装',24000,'促销'),
('洗涤',50,'促销');SELECT * FROM sort;

执行sql语句:

1.增删改

2.查询

输出:

SQL注入攻击简单案例:

CREATE TABLE users(
 id INT PRIMARY KEY AUTO_INCREMENT,
 username VARCHAR(100),
 PASSWORD VARCHAR(100)
);INSERT INTO users (username,PASSWORD) VALUES ('a','1'),('b','2');

正常情况,必须输入a,1或者b,2才可以登录成功

这里如果这样输入:

1=1恒成立,or两边只要有一边成立就会成功,这里就实现了最简单的sql注入攻击

解决:

使用PrepareStatement接口

发现这个接口更安全,所以建议使用这个接口实现增删改查

使用PrepareStatement接口,实现数据表的更新操作

PrepareStatement接口实现数据表的查询操作

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表