`
zuishengmengsi1990
  • 浏览: 11104 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

转:ibatis解决sql注入问题

 
阅读更多

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

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

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

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

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

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

 

如下3种SQL语句:

[html] view plaincopy
  1. mysql: select * from t_user where name like concat('%',#name #,'%')    
  2.    
  3. oracle: select * from t_user where name like '%'||#name #||'%'   
  4.    
  5. SQL Server:select * from t_user where name like '%'+#name #+'%     

 

 

转自:http://blog.csdn.net/scorpio3k/article/details/7610973

分享到:
评论

相关推荐

    通过ibatis解决sql注入问题

    iBatis解决SQL注入问题 iBatis是一个流行的持久层框架,广泛应用于Java企业级开发中。然而,在使用iBatis时,开发人员经常面临着SQL注入问题。SQL注入是一种常见的安全威胁,可能会导致数据泄露、数据篡改、系统...

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

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

    iBATIS-SqlMaps-2_cn.pdf

    在实际应用中,iBATIS SQL Maps常与其他Java框架(如Spring)集成,以实现更强大的功能,如AOP(面向切面编程)和依赖注入。同时,随着技术的发展,iBATIS已被MyBatis所取代,但其设计理念和核心思想在MyBatis中得以...

    ibatis视频教程.rar

    3. 分离SQL和Java代码:Ibatis将SQL语句和Java代码分离,使得代码更易于管理和测试,同时也降低了SQL注入的风险。 4. 动态SQL:Ibatis提供了动态SQL的功能,可以在XML映射文件中直接编写条件语句,极大地简化了复杂...

    ASP.NET MVC+iBatis+SQL

    3. **参数绑定**:在iBatis映射文件中,可以使用占位符绑定动态参数,实现SQL语句的参数化,提高安全性并防止SQL注入。 综上所述,这个项目演示了如何结合ASP.NET MVC、iBatis和SQL来构建一个简单的Web应用程序。...

    iBATIS SQL Maps 开发指南

    2. 需要手动管理SQL语句,可能会引发SQL注入问题。 3. 与ORM框架相比,iBATIS的功能相对较少,例如缺少实体类的自动映射。 总的来说,iBATIS SQL Maps为Java开发提供了一种有效的数据库访问方案,通过学习和掌握其...

    ibatis所需架包

    3. 易于集成:Ibatis可以方便地与Spring等其他框架集成,提供事务管理、依赖注入等功能,形成完整的应用程序解决方案。 4. 易于学习:相比于Hibernate等全对象关系映射(ORM)框架,Ibatis的学习曲线较低,它的API...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,提供了更加灵活的数据访问接口。 在"ibatis demo"中,我们通常会看到以下核心概念和知识点: 1. **配置文件**:Ibatis的配置文件(mybatis-...

    ibatis jar包

    1. SQL映射:Ibatis通过XML或注解的方式,将SQL语句与Java对象进行映射,解决了在Java代码中直接写SQL带来的问题,如可读性差、维护困难等。开发者可以在映射文件中编写动态SQL,根据不同的条件生成不同的查询语句。...

    iBATIS-SqlMaps中文教程集合

    在“iBATIS-SqlMaps中文教程集合”中,你将找到四本深入浅出的教程,这些教程涵盖了iBATIS的基础使用、高级特性和实战案例,帮助开发者快速掌握并熟练运用iBATIS解决项目中的实际问题。 1. **基础篇** - iBATIS...

    iBATIS SQL Maps官方中文教程.rar

    iBATIS SQL Maps官方中文教程是一份非常宝贵的资源,它为初学者和进阶开发者提供了深入理解iBATIS SQL Maps的途径。iBATIS是一个Java框架,它将应用程序的业务逻辑与数据库操作分离,简化了数据访问层的开发。SQL ...

    ibatis基本操作数据库

    1. **参数绑定**:iBatis使用占位符(#{})进行参数绑定,可以防止SQL注入攻击。当使用#{paramName}时,iBatis会自动处理参数,将其转化为预编译SQL中的问号,类似于PreparedStatement在Java JDBC中的作用。 2. **...

    iBATIS SQL Maps

    iBATIS SQL Maps是早期Java开发中广泛使用的持久层框架,它允许开发者将SQL语句直接集成到XML配置文件中,实现数据访问层与业务逻辑层的解耦。本教程将深入探讨iBATIS的核心概念、功能以及如何在实际项目中有效应用...

    iBATIS-SqlMaps

    iBATIS-SqlMaps 是一个历史悠久的开源框架,它在Java世界中被广泛用于数据库访问层(Data Access Layer)。这个框架的主要目标是简化Java应用程序与关系型数据库之间的交互,通过提供一种将SQL语句映射到Java对象的...

    ibatis-2.3.

    8. **Integration with Spring Framework**: iBATIS 2.3 可以与 Spring 框架无缝集成,通过 Spring 的事务管理器进行事务控制,并使用 Spring 的依赖注入来管理 iBATIS 的数据源和 SqlSessionFactory。 9. **Error ...

    ibatis包

    通过使用`#{}`占位符,Ibatis可以自动将参数值安全地注入到SQL语句中,避免SQL注入问题。 5. **结果映射**:Ibatis可以自动将查询结果映射到Java对象,也可以自定义映射规则,包括一对一、一对多、多对一等复杂关系...

    IBatis.DataMapper.1.6.2

    3. **数据参数化**: 使用 IBatis,可以轻松地将 C# 对象的属性绑定到 SQL 查询的参数,避免了 SQL 注入的风险。 4. **结果集映射**: IBatis 可以自动将数据库查询结果映射到 .NET 对象,简化了数据转换的过程,使得...

    ibatis教程

    5. **参数映射**:在SQL语句中,我们可以使用#{paramName}来引用传入的参数,Ibatis会自动处理参数的类型转换和安全注入,避免SQL注入风险。 6. **结果映射**:Ibatis提供了一种方式将查询结果自动映射到Java对象,...

    ibatis 工具与讲座

    3. **减少SQL注入风险**: iBATIS使用参数绑定机制,能有效防止SQL注入攻击。 4. **缓存机制**: 内置缓存功能,提高数据访问效率。 **iBATIS的扩展和优化** 1. **MyBatis**: iBATIS的后继者MyBatis增加了更多特性...

    ibatis总结 ibatis ibatis ibatis ibatis

    例如,`select * from PRODUCT where PRD_CAT_ID = #{value}`中的`#{value}`是预编译参数,能有效防止SQL注入。 总结,Ibatis提供了灵活的SQL映射机制,使得开发人员能够更好地控制SQL的执行。同时,通过与Struts和...

Global site tag (gtag.js) - Google Analytics