SQL注入(Injection)简介

SQL注入(SQL injection),是发生于应用程序与数据库层的安全漏洞。只要是支持处理SQL指令的数据库服务器,都有可能受到此种手法的攻击。

SQL注入产生的原因,是未经检查或者未经充分检查的用户输入数据,意外变成了代码被执行。针对于SQL注入,则是用户提交的数据,被数据库系统编译而产生了开发者预期之外的动作。也就是,SQL注入是用户输入的数据,在拼接SQL语句的过程中,超越了数据本身,成为了SQL语句查询逻辑的一部分,然后这样被拼接出来的SQL语句被数据库执行,产生了开发者预期之外的动作。

是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。

SQL注入演示

例如

SELECT * FROM users WHERE username = 'username_val' AND password='password_val';

在这里,username_val和password_val分别表示用户输入的用户名和密码。如果用户输入诸如“john”作为用户名和“123”作为密码之类的值,则结果语句将为:

SELECT * FROM users WHERE username='john' AND password='123';

如果用户是攻击者,他没有在输入字段中输入有效的用户名和密码,而是输入了类似以下内容的值: ' OR 'x'='x

在这种情况下,上述SQL查询将构造为:

SELECT * FROM users WHERE username='' OR 'x'='x' AND password='' OR 'x'='x';

该语句是有效的SQL语句,由于WHERE 'x'='x'始终为true,因此查询将返回users表中的所有行。您可以看到攻击者通过一个小技巧就能轻松访问数据库的所有敏感信息。

如果攻击者构造生成一个DELETE或UPDATE命令,后果甚至会更糟,攻击者可以从表中删除数据或永久更改其所有行。

防止SQL注入

要防止这种类型的攻击,就要时刻分清代码和数据的界限,避免未经检查的用户输入数据,意外变成了代码被执行。

不要信任用户提供的数据,而要验证用户输入,仅在校验通过后才能将数据提交给数据库。

进一步学习,可见

https://www.jb51.net/article/108987.htm

sql注入基础原理(超详细) - 简书

SQL注入攻击与防御 - 云+社区 - 腾讯云

Web安全之SQL注入攻击技巧与防范 - CSniper - 博客园

SQL注入(Injection)简介相关推荐

  1. SQL注入漏洞简介、原理及防护

    目录 1.SQL注入漏洞简介 2.SQL注入漏洞原理 3.SQL注入的分类 4.注入方法 5.SQL注入危害 6.SQL注入防护措施 1.SQL注入漏洞简介 SQL注入漏洞是Web层面最高位的漏洞之一 ...

  2. 【Web安全】关于SQL注入简介以及使用SqlMap获取管理员密码的探索

    上次用Burp抓包本地dami框架成功 附上截图: 文章目录 1 SQL注入漏洞简介 1.1 SQL注入点的类型 1.2 SQL注入之注入点的寻找 2 SqlMap 3 SqlMap注入基本流程 4 ...

  3. 浅析Java代码审计中的SQL注入漏洞

    浅析Java代码审计中的SQL注入漏洞 1.注入漏洞简介 2.SQL注入漏洞简介 3.JDBC拼接不当造成SQL注入 第一关:使用Statement 第二关:使用PrepareStatement 4. ...

  4. SQL注入 基础概述及相关知识

    SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...

  5. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

    这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...

  6. 张小白的渗透之路(二)——SQL注入漏洞原理详解

    SQL注入漏洞简介 乱七八糟的就不多说了,自己百度去 SQL注入原理 想要更好的学习SQL注入,那么我们就必须要深入的了解每种数据库的SQL语法及特性.下面通过一个经典的万能密码的例子带大家来拨开一下 ...

  7. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(六)-SQL注入数字型

    目录 前言: 一.SQL 注入漏洞简介 1.简介 2.危害 3.利用 4.防范 二.相关配置 三.编写"SQL 注入漏洞-数字型注入"后端代码 1.使用 springboot 框架 ...

  8. nodejs mysql 注入_node.js sql 注入攻击防御方法 (sql Injection)

    sql 注入的原理和方法应该都知道了,这里记录一下node-mysql提供的现成的api https://github.com/felixge/node-mysql node-mysql 提供了接口 ...

  9. SQL注入(SQL Injection)

    简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...

最新文章

  1. Spring.NET实用技巧3——NHibernate分布式事务(上)
  2. 利用socketserver实现异步多线程服务端简单聊天功能
  3. PyCharm 通过Github和Git上管理代码
  4. linux top 命令可视化_Linux top命令使用详解:显示或管理执行中的程序
  5. android 底部表格布局TableLayout
  6. 论文浅尝 | 重新实验评估知识图谱补全方法
  7. 云服务和serverless
  8. 前后端分离Java后端跨越问题解决
  9. 带你尝鲜LiteOS 组件EasyFlash
  10. GPS(北斗)拓展无线同步模块GSYN1000系列在电力、大坝、隧道、核电、密闭厂房的应用方案...
  11. ProjectEuler 009题
  12. 中达优控触摸屏编程视频教程_中达优控触摸屏软件下载 YKBuilder(中达优控触摸屏编程软件) v5.0.200 官方安装免费版 下载-脚本之家...
  13. PHP判断PC浏览器与手机浏览器的方法
  14. docker 安装wiki.js 和wekan
  15. 微信小程序 使用三元运算符动态渲染布局
  16. Python制作卡点视频
  17. 智慧出击,浪潮云海为海上风电打个样
  18. 国产猫粮高端化难题不少,网易天成拿什么出众?
  19. husky + lint-staged 使用备忘
  20. 自学JAVA的我提交给2020的问卷答案,JAVA核心知识点分享这一年来的努力并没有白费!

热门文章

  1. 2000多套微信小程序源码-史上最全的不同行业的源码集合
  2. LayaBox游戏项目实录四:游戏中多边形属性雷达图
  3. Forward与include的区别
  4. 固定屏幕显示模式 ScreenOrientation
  5. js给iframe动态设置src和参数参数传递问题
  6. XPath语法 — 从XML文档树中摘果子
  7. 产品总监可以通过培训提升么 to HR/管理者
  8. C++手写均值滤波算法
  9. 地图制图学与地理信息工程考研
  10. 移动终端开发必备知识