`
sony-soft
  • 浏览: 1020498 次
文章分类
社区版块
存档分类
最新评论

ibatis解决sql注入问题

 
阅读更多

对于ibaits参数引用可以使用#和$两种写法,其中#写法会采用预编译方式,将转义交给了数据库,不会出现注入问题;如果采用$写法,则相当于拼接字符串,会出现注入问题。

例如,如果属性值为“' or '1'='1 ”,采用#写法没有问题,采用$写法就会有问题。

对于like语句,难免要使用$写法,

1. 对于Oracle可以通过'%'||'#param#'||'%'避免;

2. 对于MySQL可以通过CONCAT('%',#param#,'%')避免;

3. MSSQL中通过'%'+#param#+'%。

如下3种SQL语句:

    mysql: select * from t_user where name like concat('%',#name #,'%')  
     
    oracle: select * from t_user where name like '%'||#name #||'%' 
     
    SQL Server:select * from t_user where name like '%'+#name #+'%   



分享到:
评论

相关推荐

    通过ibatis解决sql注入问题

    主要介绍了通过ibatis解决sql注入问题,需要的朋友可以参考下

    寻找sql注入的网站的方法(必看)

    方法一:利用google高级搜索,比如搜索url如.asp?... 您可能感兴趣的文章:Java面试题解析之判断以及防止SQL注入SQL注入原理与解决方法代码示例通过ibatis解决sql注入问题Win2003服务器防SQL注入神器–D盾_IIS防火墙

    SQL.预编译.docx

    SQL预编译 ibatis中如何解决sql注入问题,资料参考

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    虽然ibatai sql map可以配置多个参数,但sqlMap只能传入一个参数,我们有两种方式,一是把我们的参数封装成一个类,通过set/get取值的方式给sql map注入参数,二是通过hashMap(可以组合一些不是同一个pojo的参数有...

    iBATIS实战

    1.4 iBATIS如何解决数据库的常见问题 20 1.4.1 所有权与控制 20 1.4.2 被多个分散的系统访问 21 1.4.3 复杂的键和关系 21 1.4.4 数据模型的去规范化或过度规范化 22 1.4.5 瘦数据模型 23 1.5 小结 24 第2章 iBATIS...

    ibatis2.3.4+spring2.5的小例子二个。

    一个是纯ibatis的例子,还有一个是和spring2.5整合的例子。第二个例子主要代码测试在CopyOfUserDaoTest.java这个类里面,全部使用的是最新注解方式来注入和测试的。欢迎大家拍砖,如有不懂,请电邮:xnxqs@163.com ...

    struts2_spring_ibatis整合源代码

    利用Struts2+Spring+Ibatis来整合开发,使用过struts+spring+...而spring在项目中运用了依赖注入的方式,当然ibatis的持久层比hibernate更能控制SQL语句。感兴趣的学友门将SSI2源代码共享给大家,希望能够帮助到你们!

    基于jsp的团购网站

    完完全全可以用的,放心下载! 1、日期控件 2、ajax 其他框架 ext 3、树控件 4、grid控件 5、jdbc 批处理 sql 6、各种数据库的分页方法 ...9、sql 注入 10、java 设计模式 11、iBatis 使用 12、webservice 13、Hessian

    springmybatis

    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...

    Step By Step写测试(书签版).pdf

    3.2.3 Spring Bean依赖项注入规则 3.2.4 注册特殊实现类 3.3 DIY Spring Bean 3.4 Spring总结 4 JMockit使用 4.1 jmockit的优点 4.1.1 传统mock方法的限制: 4.1.2 使用mock的场景 4.1.3 运行jmockit测试 4.2 基于...

    DBKING使用指南

    另外,也可以在此基础上配合一定的代码来防止SQL注入的问题。 3、为各类数据库之间的数据导入导出提供高效率的工具  异构数据库的导入导出一直是个大难题,一般的工具配置复杂,尤其是不支持LOB这样的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 ...

    基于maven项目的SSM框架与layu前端框架的代码

    iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain ...

    spring chm文档

    9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1....

    Spring 2.0 开发参考手册

    9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1....

    spring in action英文版

     4.2.1 JDBC代码的问题  4.2.2 使用JdbcTemplate  4.2.3 把操作创建成对象  4.2.4 自增键  4.3 介绍Spring的ORM框架支持  4.4 用Spring整合Hibernate  4.4.1 Hibernate概览  4.4.2 管理...

    Spring中文帮助文档

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    Spring API

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    Spring面试题

    AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将...

    Java面试宝典2010版

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 4、编程用JAVA解析XML的方式. 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 七. 流行的框架与新技术 1、谈谈你对Struts的理解...

Global site tag (gtag.js) - Google Analytics