初识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.适当处理错误但是不显示结果,可能会显示一个通用的错误页面

你可能感兴趣的:(初识SQL注入)