SQL注入语法和介绍(一)

SQL注入即是指WEB应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

WEB应用程序三层架构:视图层+业务逻辑层+数据访问层

SQL注入之MySQL数据库

复制代码
数据库服务器层级关系:
    服务器里面
        :多个数据库
            :多个数据表
                :多个列、行、字段
                    :最后拿到的才是我们想要的数据
                    
                    
                    
系统库释义
提供了访问数据库元数据的方式。
information_schema      信息模式数据库,提供对数据库元数据的访问,符合 SQL 标准。
performance_schema      性能模式,用于监控 MySQL 服务器运行时的性能数据。
mysql                   MySQL 系统数据库,存储用户权限、插件、时区等系统信息。
sys                     系统数据库,基于 performance_schema 和 information_schema 提供更易读的性能视图。

基本的查询语句

复制代码
show databases; 查看所有数据库
use 数据库名; 进入\选择数据库
show tables; 查看当前数据库的所有表
select * from 表名; 查看某个表的所有数据
select * from users; 查看users表里的所有数据

条件查询(where)

复制代码
select * from users where id=2;
利用union联合查询,拼接在一起查询,可以一条语句,查多个结果
select * from users where id=2 union select * from users where pass = 111;
select * from users where id=1 or pass = 111; 都行
select * from users where id=1 || pass = 111; 也行
select * from users where id=1 && pass = 123456;

联合查询(多个语句查询)

复制代码
1、前后相互独立,前面查询的语句和后面的查询语句,结果互不干扰!
2、前面的查询语句的字段数量 和 后面的查询语句的数量要保持一致
但是首行的字段名,是第一个的字段名
不能前面2个,后面3个

order by(排序)

复制代码
select * from users order by id; 默认是降序(desc),asc(升序)
作用是猜解表的字段/列数
select * from users order by 可以写1、2、3、4、...;
order by 后面的数字是表的字段数,第几列
当order by 1没有报错说明有1个字段
当order by 2报错说明没有2个字段
这样就可以知道表中有多少个字段

系统数据库

复制代码
默认是数据库系统自带的
高版本自带系统库,而5.0以下的版本不带系统库
在MySQL5.5才开始新增一个数据库

information_schema

复制代码
共有61张表,其中三张表
1.schemata:保存当前MySQL整个服务器所有的的数据库信息,库名
2.tables:保存当前整个服务器所有的数据表的信息 表名
3.columns:保存当前整个服务器所有的字段的信息 列名
常用参数
复制代码
tables          表
table_name      表名
columns         列
column_name     列名
scheam_name     库名
schemata        
相关推荐
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1775 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐5 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再5 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest5 天前
数据库SQL学习
数据库·sql