【SQL注入】
1.什么是SQL注入 一种注入攻击,可以执行恶意SQL语句。 通过将任意 SQL代码插入数据库查询 ,使攻击者能够 完全控制 Web应用程序后面的 数据库服务器 。 犯罪分子可能会利用它来未经授权访问用户的敏感数据: 客户信息 , 个人数据 , 商业机密 , 知识产权 等。SQL注入攻击是最古老,最流行, 最危险的Web应用程序漏洞之一 。 2.SQL注入攻击的类型 SQL注入分为多种类型 1.带内注入 2.盲注入 3.带外注入 3.带内注入 1. 基于 错误的SQL 注入:从显示的错误消息中获取有关数据库的信息 2.基于 联合的SQL 注入:依赖于攻击者能够将UNION ALL被盗信息的结果与合法结果连接起来。 这两种技术都 依赖于 攻击者 修改应用程序发送的SQL, 以及浏览器中显示的 错误和返回的信息 。 如果应用程序开发人员或数据库开发人员无法正确地 参数化 他们在查询中使用的值,那么它会成功。 4.例子 举一个 简单的例子 在我们没有使用任何安全框架的情况下, 比如在一个登陆界面,要求用户输入用户名和密码, 以mybatis为例 ,登陆页面的sql写成了这样 如果 list的size不为0 就放行~ 数据库里的user 表中有两条记录 username password a 1 b 2 尝试输入 正确的用户名密码 显示我们登陆成功 尝试输入 错误的密码 我们登录失败