iBatis解决sql注入
(1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%'
(2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%'
(3) 解决方法是利用字符串连接的方式来构成sql语句 name like '%'||'#name#'||'%'
(4) 这样参数都会经过预编译,就不会发生sql注入问题了。
(5) #与$区别:
#xxx# 代表xxx是属性值,map里面的key或者是你的pojo对象里面的属性,ibatis会自动在它的外面加上引号,表现在sql语句是这样的 where xxx = 'xxx' ;
$xxx$ 则是把xxx作为字符串拼接到你的sql语句中, 比如 order by topicId , 语句这样写 ... order by #xxx#,ibatis 就会把他翻译成 order by 'topicId' (这样就会报错) 语句这样写 ... order by $xxx$ibatis 就会把他翻译成 order by topicId
Sql代码
SELECT * FROM user WHERE username like '%' || #username# || '%'
其实上面的语句是针对Oracle 的,对于不同数据字符串连接符不一样。现列举mysql和SQLServer如下:
Mysql:
SQLServer:
-----------------------------------------------------------------------------------------------------------------------------
关于数据库字符串连接符简单列举我使用过的一些数据库如下:
Oracle | SQLServer | Mysql | DB2 |
|| 或 CONCAT() | + | CONCAT() | || 或 CONCAT() |
转自:http://blog.csdn.net/csdnbenbenchong/article/details/7105939
相关推荐
在iBATIS中,可以使用类似的方法来实现这样的查询。一种常见的错误写法是直接将`%`包含在SQL字符串中,如下所示: ```xml SELECT * FROM t_stu WHERE s_name LIKE #name# ``` 这种方式的问题在于,当调用查询时...
标题中提到的“常用ibatis配置”指的是在使用iBatis这一数据持久层框架中,常见的配置用法和技术点。iBatis(现称为MyBatis)是一个流行的Java持久层框架,它通过使用XML或注解的方式,将SQL语句与对象进行映射,...
本教程聚焦于如何使用Ibatis查询指定ID的单个对象,这对于日常的数据检索工作尤为重要。 首先,理解Ibatis的基本架构。Ibatis不是一个完整的ORM(对象关系映射)框架,而是介于SQL和Java之间的桥梁,允许开发者编写...
以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...
本文将详细介绍 Mybatis 中 Oracle 的拼接模糊查询及用法,旨在帮助开发者更好地使用 Mybatis 实现 Oracle 数据库的查询操作。 一、拼接模糊查询的正确写法 在 Oracle 中,拼接模糊查询的正确写法是使用 `concat` ...
iBatis解决SQL注入问题 iBatis是一个流行的持久层框架,广泛应用于Java企业级开发中。然而,在使用iBatis时,开发人员...同时,开发人员也需要注意在使用iBatis时,遵守安全编码实践,避免使用不安全的参数传递方式。
在本实例中,我们将深入探讨IBatis3.1版本的核心特性、配置、使用方法以及常见问题。 ### 一、IBatis3.1概述 IBatis3.1是该框架的一个稳定版本,主要改进了SQL映射文件的结构,增强了动态SQL的功能,并且提供了更...
**IBatis 学习总结** **一、简介** IBatis 是一个优秀的持久层框架,它允许开发者将 SQL 语句直接写在配置...通过阅读提供的 "ibaits学习总结.docx" 和 "IBAITS学习总结" 文件,可以深入理解其具体使用方法和案例。
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 以上就是关于 MyBatis 的基础操作及其相关知识点的详细介绍。这些基础知识对于初学者来说非常重要,能够帮助他们快速上手 MyBatis...
### MyBatis 入门详解 #### 一、MyBatis 概述 **MyBatis** 是一款优秀的...以上是关于 MyBatis 的基本介绍和使用方法,通过这些知识点的学习,可以帮助初学者快速掌握 MyBatis 的使用技巧,并能够应用于实际项目中。