原理:SQL注入攻击值得是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一下组合,
通过执行SQL语句进执行攻击者所要的操作,其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统。

SQL注入的产生原因:
 不当的类型处理,不安全的数据库配置, 不合理的查询集处理, 不当的错误处理, 转义字符处理不合适, 多个提交处理不当

SQL注入方法一般有两种:
方法一:采用直接猜表名和列名的方法或者是利用报错信息来确定表明和列名
And (Select count(*) from 要猜的表名)<>0  
    And (Select count(要猜的列名) from 已知的表名)<>0
注意:<>在sql中是不等于,结果若返回正确则猜的表名和列名是正确的

方法二:后台身份验证绕过漏洞
  此方法利用的就是AND和OR的运算规则,从而造成后台脚本逻辑性错误
  若后台的查询语句为sql='select admin from t_admin where user='request("user")' and passwd='request("user")';
但输入用户名密码若为  'or 'a'='a',那么查询语句就变成了select admin from t_admin where user=''or 'a'='a' and passwd=''or 'a'='a';
这里就变成了四个查询语句即: 假 or 真 and 假 or 真, 先算and再算or,就变成: 假or 假 or真,结果为真,就能直接接入后台了。
不过要想用这种方法进行攻击,必须具备一个条件:是这种用户名和密码在一个查询语句中。 或者可以 'or 1=1 --  (--为sql注释符)

简单的SQL注入防御方法:
 1、首先要对输入的数据进行过滤,将常见的sql语句的关键词:select or ' " 等字符进行过滤。
 2、对在数据库中对密码进行加密,验证登陆的时候先将 密码进行加密再与数据库中加密的密码进行对比,若此时一致则基本是安全的。
 3、对数据库中密码采用常用的MD5加密时尽量在字符串的前边和后边加上指定字符后在进行加密,这样即便是看到了数据库也很难破解密码。

后续通过深入的试验和理解会给出高级篇,有错误欢迎大家指正,一块学习!

SQL注入的攻击与防御(简单篇)相关推荐

  1. tp中如何防止mysql注入_thinkphp如何防止sql注入xss攻击

    SQL注入简介 SQL 注入漏洞(SQL Injection)是 Web 开发中最常见的一种安全漏洞.可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有 ...

  2. sql md5函数_【学习笔记】常见漏洞:SQL注入的利用与防御

    第   21 课   SQL注入的利用与防御 课程入口(付费) 个人背景 李,本科,电子信息工程专业,毕业一年半,有JavaScript的,PHP,Python的语言基础,目前自学网络安全中. SQL ...

  3. SQL注入教程——(三)简单的注入尝试

    本文将以简单的SQL注入实例来讲解SQL注入的基本思路与流程,当然本文实例只是注入的一种情况,初学者应重点理解思路,学会举一反三. GET与POST 进行SQL注入攻击,大家还需要了解两种基本的 HT ...

  4. TP5 框架 防止 sql注入 + xss攻击 + session盗窃

    话不多说 直接上正餐: TP5 框架 其实自身就舍友对sql注入以及xss攻击的防御  sql注入 + xss攻击 位置 application/config.php  // 默认全局过滤方法 用逗号 ...

  5. SQL注入及其危害、防御手段

    一.什么是SQL注入 SQL(Structured Query Language),即结构化查询语言,用于操作关系型数据库管理系统.目前,大多数Web编程语言提供了操作SQL的接口,以方便与数据库进行 ...

  6. sql注释符注入防御_WAF的SQL注入绕过手段和防御技术

    一.关于SQL注入 SQL注入是一种常见的入侵WEB应用的手法.SQL注入是利用应用系统的编程漏洞和SQL语言的语法特征,改变原始的SQL语句执行逻辑而产生的. 攻击者向Web应用发送精心构造的输入数 ...

  7. SQL注入法攻击一日通

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安 ...

  8. sql注入的攻击与利用

    前言 本文叙述了在Mysql.MSsql.Oracle.PostgreSQL平台下的sql注入探测方式与利用,作为个人笔记,没有框架以及中间件的参与. 文章的内容并不全面,日后有接触新的方法会有补充. ...

  9. 常见web攻击(sql注入,xss攻击,csrf攻击)

    sql注入攻击 危害 方式:通过表单提交加入特殊字符 如:' OR 1=1#' 防范:用django的ORM,就大可不必考虑这个问题,   如果自己写,要用正则和其他方式进行过滤 xss(Cross ...

最新文章

  1. 2022-2028年中国侧线油行业市场研究及前瞻分析报告
  2. 自定义 DataLoader
  3. iOS日常工作之常用宏定义大全
  4. PHP---错误处理(error)
  5. mt4 python神经网络_迈达克软件公司承认Python运算对量化交易的重要性----将Python与Metatrader 5集成一体...
  6. 一文带你认识30个重要的数据结构和算法
  7. php的函数是谁写的,一个用PHP写的中文分词函数
  8. Android 系统(33)---sensor移植总结
  9. grafana计算不同时间的差值_大数据时代!如何基于Spark Streaming构建实时计算平台...
  10. KMP算法(C++版)
  11. spring Boot 学习(一、Spring Boot与缓存)
  12. Tips for ASP.NET Application Performance Enhancement
  13. “他们”将变身为全国最大的房屋租赁供应商
  14. JAVA程序性能优化读书笔记
  15. KVM虚拟机,使用linux bridge配置vlan隔离
  16. 基于PP-OCR训练表格识别模型
  17. 几个常见HTTP5XX状态码解决思路
  18. git 教程(12)--分支管理
  19. 第二讲:双活灾备方案建设方法论
  20. 升级php7+安装laravel过程中遇到的问题汇总

热门文章

  1. Qt的QImage类
  2. 基于Matlab遗传算法工具箱解决物流中心选址
  3. linux输入ll命令各个字段的含义
  4. pytorch【Conv2d参数介绍】
  5. Android 颜色(不)透明度的使用及项目开发中的心得总结
  6. Python音频处理——pydub
  7. 【bzoj 1812】[Ioi2005]riv(树形dp)
  8. Field userDao in com.sd.sbmb.service.impl.UserServiceImpl required a bean of type ‘com.sd.sbmb.dao.U
  9. DoNet开源项目-基于jQuery EasyUI的后台管理系统
  10. 卸载亚信的安全杀毒软件