Mybatis下的SQL注入漏洞原理及防护方法 |
您所在的位置:网站首页 › 简述sql注入漏洞的原理和方法有哪些 › Mybatis下的SQL注入漏洞原理及防护方法 |
目录一、前言二、SQL 注入漏洞原理1、概述2、漏洞复现3、修复建议三、Mybatis 框架简介1、参数符号的两种方式2、漏洞复现四、Mybatis 框架下的 SQL 注入问题及防护方法1、模糊查询2、带有 IN 谓词的查询3、带有动态排序功能的查询
一、前言
之前我一直认为 Mybatis 框架下已经实现预编译机制,很多东西都封装好了,应该基本上不会再有 SQL 注入问题了。近期在渗透中发现,在实际项目中,即使使用了 Mybatis 框架,但仍然有可能因为编码人员安全意识不足而导致 SQL 注入问题。出现情况还真不少,因此有了这篇文章。 二、SQL 注入漏洞原理 1、概述SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。 简单地说,就是通过在用户可控参数中注入 SQL 语法,破坏原有 SQL 结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为如下原因造成的: 程序编写者在处理应用程序和数据库交互时,使用字符串拼接的方式构造 SQL 语句。 且未对用户可控参数进行足够的过滤。 2、漏洞复现下面使用DVWA靶场来进行演示,网站架构为PHP,我们重点关注漏洞原理即可。 该页面提供了一个简单的查询功能,可以根据前端输入的用户ID来查询对应的用户信息。如图,输入 1,返回了对应 admin 用户的信息。 查看该页面的源代码: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |