首页 > 数据库 >SQL注入--基本概念

SQL注入--基本概念

时间:2024-12-01 10:30:20浏览次数:13  
标签:数字 -- 数据库 SQL MySQL 字符串 基本概念 注入

SQL注入的定义

  • SQL:是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据

    进行交互时会采用SQL。

  • SQL注入:是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语

    句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。这时相当于用户

    控制了后端SQL语句的一部分。它目前是黑客对数据库进行攻击的最常用手段之一。

    比如,Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验

    证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数

    据库的信息以及提权,发生SQL注入攻击。

网站结构

  • 表示层:前端(用户在浏览器看到的内容)
  • 业务逻辑层:后端(对用户提交的数据进行处理的代码,也就是常说的编程语言,比如java、php、python等)
  • 数据访问层:数据库(保存数据的地方)

SQL注入原理

SQL注入攻击:通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。

SQL注入产生的原因:

当Web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有

经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执

行,获取或修改数据库中的数据。简单的说就是在post/get表单或页面请求的查询字符

串中插入SQL语句,最终使web服务器执行恶意命令的过程。可以通过一个例子简单说明

SQL注入攻击。假设某网站页面显示时URL为 http://www.example.com?id=123 ,此时

URL实际向服务器传递了值为123的变量id,这表明当前页面是对数据库进行动态查询的

结果。由此,我们可以在URL中插入恶意的SQL语句并进行执行。另外,在网站开发过程

中,开发人员使用动态字符串构造SQL语句,用来创建所需的应用,这种情况下SQL语句

在程序的执行过程中被动态的构造使用,可以根据不同的条件产生不同的SQL语句,比

如需要根据不同的要求来查询数据库中的字段。这样的开发过程其实为SQL注入攻击留

下了很多的可乘之机。

SQL注入的本质:其实就是把用户输入的数据当做代码来执行,违背了“数据与代码分离”的原则。

SQL注入的两个关键点:

  1. 用户能够控制输入的内容。
  2. Web应用把用户输入的内容带入到数据库中执行。

SQL注入分类

  • 根据注入位置分类:GET注入、POST注入、Head头注入

  • 根据结果反馈分类:有回显注入(联合查询,报错注入,堆叠注入)、无回显注入(布尔盲注,时间盲注)

  • 根据数据类型分类:

    1. 数字型注入:当输入的参数为整型时,如ID、年龄、页码等,如果存在注入漏洞,则可以认为是数字型注入。
    2. 字符型注入:当输入参数为字符串时,称为字符型。

    数字型与字符型注入最大的区别在于:数字型不需要闭合,而字符型一般需要进行闭合。

隐式类型转换

基本概念

  • 在 MySQL 中,隐式类型转换是指在某些操作中,MySQL 会自动将一种数据类型转换为另一种数据类型,而不需要用户显式地使用类型转换函数。这种转换通常在比较操作、算术运算或者函数调用等场景下发生。例如,当一个数字和一个字符串进行比较时,MySQL 可能会将字符串转换为数字后再进行比较。

常见场景

  • 比较操作

    • 数字与字符串比较:如果一个数字和一个字符串进行比较,MySQL 会尝试将字符串转换为数字。例如,在比较5​和'5abc'​时,MySQL 会将'5abc'​转换为数字5​(转换时会从字符串开头提取数字部分,直到遇到非数字字符),然后进行比较,此时结果为相等。但是如果字符串以非数字字符开头,如比较5​和'abc5'​,转换后的数字为0​,比较结果为不相等。
    • 日期与字符串比较:在比较日期类型和字符串类型时,MySQL 也会进行隐式转换。例如,假设date_column​是一个日期类型的列,在查询语句SELECT * FROM table_name WHERE date_column = '2024-01-01';​中,MySQL 会尝试将字符串'2024-01-01'​转换为日期类型,然后与date_column​中的日期值进行比较。
  • 算术运算

    • 数字与字符串运算:当一个数字和一个字符串进行算术运算时,如加法、减法等,MySQL 会将字符串转换为数字。例如,在表达式3 + '4'​中,MySQL 会将'4'​转换为数字4​,然后进行加法运算,结果为7​。但如果字符串不能转换为数字,如3 + 'abc'​,MySQL 会将'abc'​转换为数字0​,结果为3​。
  • 函数调用

    • 参数类型不符时的转换:

      在调用函数时,如果传递的参数类型与函数期望的类型不符,MySQL 可能会进行隐式转换。例如,在使用SUM()​函数对一个包含数字和字符串混合的列进行求和时,MySQL 会将字符串转换为数字后再进行求和操作。假设列value_column​中有值1​、2​和'3'​,执行SELECTSUM(value_column) FROM table_name;​时,MySQL 会将'3'​转换为数字3​,然后计算总和为6​。

标签:数字,--,数据库,SQL,MySQL,字符串,基本概念,注入
From: https://blog.csdn.net/qq_37107430/article/details/144166048

相关文章

  • RK3568平台开发系列讲解(DMA篇)DMA Engine硬件介绍
    ......
  • RK3568平台开发系列讲解(PWM篇)PWM 子系统框架
    ......
  • 4.1.1.1 圆近似外形
    usefj_math::{Circle,Point};usecrate::geometry::{traits::GenPolyline,CurveBoundary,Tolerance};///#近似一个圆轮廓//////##论点//////除了一个圆,这个方法还有两个参数://////--圆应该近似的“边界”。///-“公差”,指定允许近似值偏离实际圆的......
  • 基于MATLAB:非相干成像及非相干照明下的光学加密仿真
    喜欢的话给小编点个关注点个赞呀在上一篇中,小编讲解了基于MATLAB的相干成像以及基于相干衍射成像的光学加密仿真,今天小编将带大家学习基于非相干成像以及相干衍射成像的光学加密matlab仿真。成像系统模型根据物体照明的相干性有不同的脉冲响应。如果照明是空间相干的,脉冲响应......
  • SpringBoot集成Swagger框架
    SpringBoot集成Swagger框架引言无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。......
  • 4.1.1.8 实心体轮廓
    //!实心体轮廓usestd::collections::BTreeSet;usecrate::{geometry::Geometry,topology::Solid};usesuper::{face::FaceApprox,Approx,ApproxCache,Tolerance};implApproxfor&Solid{typeApproximation=BTreeSet<FaceApprox>;typeCache......
  • 埃拉托斯特尼筛法(筛选素数)
    要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。算法思想:先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......//埃拉托斯特尼筛法,生成所有小......
  • DOM操作
    一、DOM以及DOM是哪种数据结构文档对象模型(DOM)是HTML和XML文档的编程接口,提供了文档的结构化的表述文档对象模型DOM是树结构(DOM树)二、DOM操作常用API1.DOM节点操作1)获取DOM节点:document.getElementById('id属性值');返回拥有指定id的对象的引用do......
  • HCIP-07 OSPF基础
    目录动态路由协议简介动态路由协议的分类链路状态路由协议-LSA泛洪链路状态路由协议-SPF计算链路状态路由协议-路由表生成链路状态路由协议总结OSPF简介OSPF概述OSPF应用场景OSPF基础术语-RouterIDOSPF基础术语-区域OSPF基础术语-度量值OSPF三大表项-邻居表OSPF三......
  • Alfred Nobel
    AlfredNobel,bornin1833inSweden,wasafamouschemist,engineerandtheinventorofdynamite.Heinitiallymadedynamitetohelpwithbuildingandminingwork,makingthesetaskssaferandfaster.However,whenhesawitbeingusedinwars,hefelt......