SQL注入基础

本文介绍了SQL语言的基础,包括其结构化查询语言的特点和组成部分,如DQL、DML等。接着,详细讲解了如何在MySQL数据库中进行数据查询、插入、更新和删除操作。此外,还阐述了SQL注入的原理,强调了由于不恰当处理用户输入导致的安全隐患,提醒开发者注意防范。
摘要由CSDN通过智能技术生成

一、SQL语言

​ 1.1 结构化查询语言:SQL

​ 特点:解释性语言

​ 数据:计算机系统中,用二进制来描述信息的字符

​ 数据库:按照数据结构来组织、存储和管理数据的仓库

​ 数据库管理系统:一种操纵和管理数据的软件,用于建立和使用、维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性

​ 结构化查询语言:用于存储数据及查询、更新和管理关系数据库

​ 1.2 SQL语言

​ SQL语言包含六大部分:

​ 数据查询语句:DQL

​ select

​ 数据操纵语句:DML

​ insert update delete

​ 数据控制语句:DCL

​ grant revoke

​ 数据定义语句:DDL

​ create drop

​ 指针控制语句:CCL

​ declare curor fetch

​ 事物处理语句:TPL

​ commit rollback

二、SQL语句

​ 2.1 查询数据

​ 查询user表中的数据:

	select *

	from user

​ 查询user表中name等于admin的数据

 	select *

	from user

	where name = ‘admin’

​ 2.2 插入数据

	insert into user values("data1","data2","data3,"....")

​ 2.3 更新数据

	update user set password=“root” where name="root"

​ 2.4 删除数据

	delete from user where name="root"

三、MySQL数据库

​ 3.1 系统数据表

​ schemate:提供关于数据库的信息

			desc information_schema.schemate
			#存放数据库的名称
			select distinct schema_name from information_schma.schemate

​ columns:给出表中的列信息

			desc information_schema.columns
			#所有列名
			Select distinct column_name from information_schema_columns
			#所有数据库名
			Select distinct table_schema from informtion_schema.columns
			#所有表名
			Select distinct table_name from information_schema.columns

​ tables:关于数据库中的表的信息

			Desc information_schema.tables
			#所有数据库名
			Select distinct table_schema from information_schema.tables
			#所有表名
			Select distinct table_name from  information_schema.tables
			

​ 3.2 系统函数

​ 常用MySQL系统函数:

		○ system_user()系统用户名
		○ user()用户名
		○ current_user() 当前用户名
		○ session_user() 连接数据库用的用户名
		○ database()数据库名
		○ version()mysql 数据库版本
		○ load_file()mysql 读取本地文件的函数
		○ @@datadir 数据库路径
		○ @@basedir mysql安装路径
		○ @@version_compile_os 操作系统


​ 实例:

			 1)查询当前用户
				Select current_user();
			(2)查询当前数据库版本
				Select version();
			(3)查询数据库路径
                Select @@datadir;

四、SQL注入原理

​ 在一些网站的后台开发中,使用数据操作与代码耦合的方法,也就是直接构造SQL语句,然后在数据库中查询。后台程序通过HTTP获取用户的输入数据,然后将其组成SQL操作语句,传输到数据库中执行,在这个过程中并没有对用户的输入进行查看、过滤,从而使用户可以构造恶意的SQL语句,获取非法数据或破坏数据库,从而造成数据库中数据的泄露。SQL注入的原因就是用户可以直接操纵数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值