zoukankan      html  css  js  c++  java
  • SQL注入原理&分类&危害&防御

     

    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码推算

     

    人生得意须尽 莫使金樽空对月
  • 相关阅读:
    前端组件库
    lazyload隐藏元素不生效处理方法
    Javascript规范
    发送验证码
    flex
    css3转圈
    1.15考试总结
    [violet]蒲公英题解
    ubuntu和windows下的程序对拍
    [Poetize6] IncDec Sequence题解
  • 原文地址:https://www.cnblogs.com/puhk/p/10702619.html
Copyright © 2011-2022 走看看