一.SQL注入攻击原理

恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服务端执行。

二.SQL注入攻击分类

(1)注入点的不同分类

  • 数字类型的注入
  • 字符串类型的注入

(2)提交方式的不同分类

  • GET注入
  • POST注入
  • COOKIE注入
  • HTTP注入

(3)获取信息的方式不同分类

  • 基于布尔的盲注
  • 基于时间的盲注
  • 基于报错的注入

三.SQL注入攻击防御方法

1.定制黑名单:将常用的SQL注入字符写入到黑名单中,然后通过程序对用户提交的POST、GET请求以及请求中的各个字段都进行过滤检查,筛选威胁字符。

2.限制查询长度:由于SQL注入过程中需要构造较长的SQL语句,因此,一些特定的程序可以使用限制用户提交的请求内容的长度来达到防御SQL注入的目的,但这种效果并不好。

3.限制查询类型:限制用户请求内容中每个字段的类型,并在用户提交请求的时候进行检查,凡不符合该类型的提交就认为是非法请求。

4.白名单法:该方法只对部分程序有效,对一些请求内容相对固定的程序,可以制定请求内容的白名单,如:某程序接受的请求只有数字,且数字为1至100,这样可以检查程序接受的请求内容是否匹配,如果不匹配,则认为是非法请求。

5.设置数据库权限:根据程序要求为特定的表设置特定的权限,如:某段程序对某表只需具备select权限即可,这样即使程序存在问题,恶意用户也无法对表进行update或insert等写入操作。

6.限制目录权限:WEB目录应至少遵循“可写目录不可执行,可执行目录不可写”的原则,在次基础上,对各目录进行必要的权限细化。

较安全的WEB站点应根据程序本身的功能实现,利用上面的某几种或全部方法,方可达到安全的目的。

SQL注入攻击的原理、分类和防御方法相关推荐

  1. SQL注入攻击实现原理与攻击过程详解

    SQL注入攻击实现原理与攻击过程详解 结构化查询语言(SQL)是一种用来和数据库交互的文本语言,SQL Injection就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到 ...

  2. SQL注入攻击分为几类?如何防御?

    网络安全攻击方式有很多种,其中较为常见的有:SQL注入攻击.XSS攻击.DDoS攻击.URL篡改等.本篇文章重点为大家介绍一下SQL注入攻击,那么你知道什么是SQL注入攻击吗?SQL注入攻击分为哪几类 ...

  3. sql注入攻击的原理(sql注入攻击防范)

    SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击.这些 SQL 语句可控制网站背后的数据库服务.攻击者可利用 SQL 漏洞绕过网站已有的安全措施.他们可绕过网站的身份认证和授权并访问整 ...

  4. SQL注入攻击及其防范检测技术研究

    2008-12-18  来自:51CTO  作者:陈小兵 本文简要介绍了SQL注入攻击的原理,SQL注入攻击实现过程,并在此基础上给出了一种SQL注入攻击的自动防范模型. 1  SQL注入攻击概述 1 ...

  5. SQL 注入攻击介绍

    目录 1.什么是 SQL 注入攻击? 2.如何防止 SQL 注入攻击? 3.使用参数化 SQL 语句防止 SQL 注入攻击的原理是什么? 4.什么是 SQL 预编译? 1.什么是 SQL 注入攻击? ...

  6. 什么是sql注入攻击,它的原理及防御方法有哪些?

    SQL注入攻击是一种利用Web应用程序对SQL语句的输入验证不严格的漏洞,将恶意代码插入到SQL语句中的攻击行为.通过这种攻击,攻击者可以绕过应用程序的认证和授权机制,直接访问数据库中的敏感信息,或者 ...

  7. Spring MVC防御CSRF、XSS和SQL注入攻击

    本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击). 说说CSRF 对CSRF来 ...

  8. SQL注入攻击及防御 手动注入+sqlmap自动化注入实战(网络安全学习12)

    CONTENTS 1 项目实验环境 2 SQL注入概述 2.1 SQL注入简介 2.2 SQL注入的危害 3 SQL基础回顾 3.1 联合查询union 3.2 information_schema数 ...

  9. [Mysql] 防御和检查SQL注入攻击的手段

    SQL注入攻击的种类 知彼知己,方可取胜.首先要清楚SQL注入攻击有哪些种类. 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句.这 ...

最新文章

  1. 异构并行编程(CUDA)结课证书
  2. boost::hana::repeat用法的测试程序
  3. linux 丢包排查思路简述(tcp+rdma)
  4. SAP Hybris Enterprise Commerce Platform ECP架构综述
  5. dfs递归实现组合型枚举
  6. CentOS下Samba文件服务器的安装与配置
  7. tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
  8. 自动完成代码,提高工作效率
  9. 【经验心得】每刷新一次页面就顺序更换一张图片的js特效
  10. 算法图解 -- 书评
  11. xign跨平台游戏引擎演示
  12. 【文献心得】关于内核在不同芯片平台移植的相关整理
  13. python k线形态识别_python量化金融系列-K线分析、及形态捕捉
  14. ArcGIS API for JavaScript开发之必学渲染方式及渲染符号概念(0)
  15. 如何用C语言封装 C++的类
  16. 0CTF-2016-Web-piapiapia
  17. Premiere Pro 2022带来离线语音转文本教程
  18. Nvidia显卡开启游戏帧数显示
  19. 为什么我Redis中key惊现“乱码”?
  20. 常用模块】HC-05蓝牙串口通信模块使用详解

热门文章

  1. 网络划分与寻址三要素: IP地址、子网掩码和地址分类
  2. 计算机键盘优点,机械键盘有哪些优点
  3. ListView实现item局部刷新
  4. 用Bibtex导出GB/T 7714等格式引用的方法
  5. 排列组合问题的通用算法
  6. linux系统下查看服务器品牌型号序列号
  7. 万字讲解Apollo,全网Apollo资料整理和学习
  8. DirectWrite文字排版——字符串去尾
  9. Excel技巧--数据不能按照1-100来排列
  10. Docker数据卷挂载相关