黑客常说的SQL注入是什么?

本节目标

1.了解什么是SQL注入
2.掌握如何进行SQL注入

什么是SQL注入

在这里插入图片描述
以后做网站开发,软件开发等工作,我们要记住,有一句话叫做,一切的输入都是万恶的,我们【一定】要进行过滤和验证。
原因在于任何基于SQL的数据库,都有可能受到SQL注入的攻击,很多在于因为要提交大量的表单数据,没有一条一条去验证,用户的账号密码明文存储,导致信息泄漏。

如何进行SQL注入?

在这里插入图片描述
本质,就是表达式为逻辑真,表达式成立,获取数据。
假设我们建立一个表格,存储用户的账号和密码

create table user(
 id int not null auto_increment primary key,
 username varchar(30) comment '用户名',
 password varchar(30) comment '密码'
);

insert into user(username,password) values('admin','123456');
insert into user(username,password) values('test','123456');

在前端,我们接受到用户的输入是这样处理的,才可以获取到数据
select * from user where username=‘admin’ and password=‘123456’;
显示结果:

mysql> select * from user where username='admin' and password='123456';
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | 123456   |
+----+----------+----------+
1 row in set (0.02 sec)

一般情况下,如果账户或者密码输入错误,是不会得到数据的。

但是假如我们这么做
select * from user where username=‘xxx’ and password=’’ or ‘1’=‘1’;
居然得到了所有的数据
显示结果:

mysql> select * from user where username='xxx' and password='' or '1'='1';
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | 123456   |
|  2 | test     | 123456   |
+----+----------+----------+
2 rows in set (0.03 sec)

是不是很神奇呢?SQL也是黑客的常用手段之一,我们需要多加防范。

发布了82 篇原创文章 · 获赞 19 · 访问量 4635

猜你喜欢

转载自blog.csdn.net/ABCisCOOL/article/details/105521254