初识SQL注入

sql注入

SQL注入的产生过程

  • 转义字符处理不当
  • 类型处理不当
  • 查询集处理不当
  • 错误处理不当
  • 多个提交处理不当(使用“白名单”而非“黑名单”)
  • 不安全的数据库配置
    不要信任用户输入的任何数据
    *元数据:数据库内部包含的数据,例如MYSQL中的 INFORMATION_SCHEMA *

无法隐藏或取消对MYSQL数据库中 INFORMATION_SCHEMA 虚拟数据库的访问

  • 基本的数据库驱动的web应用通常包含三层:表示层(浏览器),逻辑层(编程语言),存储层(数据库)

寻找SQL注入

唯一规则:发送意外数据以触发异常

  1. 识别WEB应用中所有的数据输入
  2. 了解哪些类型请求会触发异常
  3. 检测服务器响应中的异常
识别数据输入
  • GET请求
    特点:信息显示在URL中,对用户透明,长度有限制
  • POST请求
    特点:长度几乎无限制,表单提交一般通过POST提交,不显示在URL中

一般,有两个原因可以导致SQL注入:

  1. 缺少用户输入验证
  2. 数据和控制结构混合在同一通道中
数据库错误

常见几种对数据库错误的处理方法:

1.将错误显示在页面上(极其危险)
2.隐藏在web页码的源代码中以便于调试(开发环境中适用)
3.跳转至另一个页面
4.返回HTTP错误代码500(内部服务器错误)或HTTP重定向代码(502)
5.适当处理错误但是不显示结果,可能会显示一个通用的错误页面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,075评论 2 89
  • 什么是sql注入? sql注入就是将SQL语句插入到用户输入或接收数据的地方,数据库执行后将结果返回到前台。 产生...
    就是爱文艺阅读 340评论 0 3
  • 一、基础 1. 定义 SQL注入是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应...
    楠昭阅读 560评论 2 3
  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/sq...
    道无涯_cc76阅读 1,991评论 0 2
  • 近日看了汉语语用趣说 作 者 徐默凡 9787811359138 一书。很受启发。 最有启发的是两个原则,coop...
    心_声阅读 441评论 0 0