SQL是什么?

结构化查询语句

SQL注入是什么?

是一种将SQL 语句插入或添加到用户输入的参数中,这些参数传递到后台服务器,加以解析并执行

造成注入的原因/原理?

1.对用户输入的参数没有进行严格过滤(如过滤单双引号 尖括号等),就被带到数据库执行,造成了SQL注入

2.使用了字符串拼接的方式构造SQL语句

SQL注入分类?

根据数据类型分为:1.整型注入  2.字符型注入

根据注入语法分为:1.联合查询注入  2.报错型注入    3.布尔型注入  4.延时型注入  5.多语句查询注入

SQL注入危害?

1.数据库信息泄露

2.网页篡改:登陆后台后发布恶意内容

3.网站挂马 : 当拿到webshell时或者获取到服务器的权限以后,可将一些网页木马挂在服务器上,去攻击别人

4.私自添加系统账号

5.读写文件获取webshell

防御?

1.对进去数据库的特殊字符(单双引号 尖括号等)进行编码转换

2.不要使用动态拼装SQL,使用参数化SQL

3.不要使用管理员权限的数据连接,最好为每个应用使用单独的数据库连接

4.应用异常信息尽量给出少的提示,最好自定义报错信息对原始报错信息进行包装

5.使用防火墙,安全狗,云盾等

扩展:

联合查询:合并多个相似的选择查询结果

联合查询限制条件:必须由两条或两条以上的select语句组成,语句之间用关键字union分隔

union中的每个查询必须包含相同的列

不管是报错还联合注入都是基于整型和字符型注入这两种类型下的

报错注入:由于配置不当,错误信息被输出到前台,导致攻击者根据报错信息进行一系列操作

延时注入和布尔注入共同点:都是一个字符一个字符爆出来的,耗费时间长,都没有显示位,都要ASCII码推算

SQL注入原理&分类&危害&防御的更多相关文章

  1. Web安全之SQL注入(原理,绕过,防御)

    首先了解下Mysql表结构 mysql内置的information_schema数据库中有三个表非常重要1 schemata:表里包含所有数据库的名字2 tables:表里包含所有数据库的所有的表,默 ...

  2. SQL注入原理及绕过安全狗

    1.什么是SQL注入攻击 SQL注入攻击指的是通过构造特殊的输入作为参数插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令 http://www.xxx.com/list. ...

  3. web安全之sql注入原理

    sql注入的原理:        将(恶意)的SQL命令注入到后台数据库引擎执行的能力,把信息返回到页面 sql注入产生的原因:      过滤不严谨,导致产生的sql注入. sql注入产生的地方:  ...

  4. SQL注入原理与解决方法代码示例

    一.什么是sql注入? 1.什么是sql注入呢? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网 ...

  5. sql注入原理及解决方案

    sql注入原理 sql注入原理就是用户输入动态的构造了意外sql语句,造成了意外结果,是攻击者有机可乘 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的 ...

  6. sql注入原理,利用与防护

    一.sql注入原理 注入攻击的本质就是把用户输入的数据当作代码来执行.所以注入攻击有两个必要条件 1.用户能够控制的输入. 2.原本程序要执行的代码,拼接了用户输入的数据. 二.sql注入分类 按照请 ...

  7. SQL注入原理及代码分析(二)

    前言 上一篇文章中,对union注入.报错注入.布尔盲注等进行了分析,接下来这篇文章,会对堆叠注入.宽字节注入.cookie注入等进行分析.第一篇文章地址:SQL注入原理及代码分析(一) 如果想要了解 ...

  8. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  9. 回头探索JDBC及PreparedStatement防SQL注入原理

    概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...

随机推荐

  1. NutzWk 5.0.x 微服务分布式版本开发及部署说明

    NutzWk 5.x 已发布一段时间,这段时间基于此版本开发了智慧水务系统(NB-IOT).某物联网平台.某设备租赁平台.某智慧睡眠平台.某智慧园区项目等,开发和部署过程中遇到一些小问题,开这个帖子把 ...

  2. BZOJ 2424 订货 最小费用流

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2424 题目大意: 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的 ...

  3. Uva1001 Say Cheese Floyd

    题意:一个无限大的奶酪里有n个球形的洞,在洞内可以瞬移,不然每一个单位要用10sec,现在给定起始点和结束点,问最短需要耗时多久? 思路:把球形的洞当做是节点,两点之间的距离是两者球心的距离减去两者的 ...

  4. Java常用的快捷键

    // // (1)Ctrl+Space // 说明:内容助理.提供对方法,变量,参数,javadoc等得提示, // 应运在多种场合,总之需要提示的时候可先按此快捷键. // 注:避免输入法的切换设置 ...

  5. 第三部分 OpenStack镜像管理

    一.简介 很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack. 不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件 ...

  6. virtualbox+vagrant学习-4-Vagrantfile-5-Machine Settings

    Machine Settings 配置命名空间:config.vm config.vm的设置将修改vagrant管理的机器的配置 Available Settings可用设置 config.vm.ba ...

  7. 【转】numpy-array自带的迭代器-----np.nditer

    转自:https://www.jianshu.com/p/f2bd63766204 it = np.nditer(x, flags=['multi_index'], op_flags=['readwr ...

  8. Linux Shell常用技巧(二)

    七. grep家族:       1.  grep退出状态:    0: 表示成功:    1: 表示在所提供的文件无法找到匹配的pattern:    2: 表示参数中提供的文件不存在.    见如 ...

  9. iOS 单例模式简单实例

    单例模式主要实现唯一实例,存活于整个程序范围内,一般存储用户信息经常用到单例,比如用户密码,密码在登录界面用一次,在修改密码界面用一次,而使用单例,就能保证密码唯一实例.如果不用单例模式,init 两 ...

  10. mysql5.7.22 下载过程

    进入官网www.mysql.com ,选择downloads: 选择 Community 再选择MySQL community server 选择5.7的版本,这个看自己选择,有问题看标题 选择5.7 ...