SQL注入:
如果用户执行
select * from product where id = 5
这条语句。其中5是有用户输入的。
SQL注入的含义就是,一些捣蛋用户输入的不是5,而是
5; delete from orders
那么原来的SQL语句将会变为,
select * from product where id=5; delete from orders
在执行完select后,还将删除orders表里的所有记录。
不过庆幸的是,Ibatis使用的是预编译语句
PreparedStatements
上述语句会被编译为,
select * from product where id=?
从而有效防止SQL注入。
不过当你使用$占位符时就要注意了。
#与$区别:
#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
分享到:
相关推荐
方法一:利用google高级搜索,比如搜索url如.asp?... 您可能感兴趣的文章:Java面试题解析之判断以及防止SQL注入SQL注入原理与解决方法代码示例通过ibatis解决sql注入问题Win2003服务器防SQL注入神器–D盾_IIS防火墙
主要介绍了通过ibatis解决sql注入问题,需要的朋友可以参考下
iBATIS-SqlMaps-2-Tutorial_cniBATIS-SqlMaps-2-Tutorial_cn.pdf.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf
ibatis 开发指南 和 iBATIS-SqlMaps两本图书
[iBATIS]sql转换工具 简单哦~ 项目组自己写的哦~分享给大家了
iBATIS-SqlMaps2入门代码文档
webwork+ibatis+sqlserver2000完整实例
通过java程序查看ibatis配置文件中的sql语句(注:无法查看变量值)
iBATIS-SqlMaps ibatis入门教程,教你如何做配置ibatis
iBATIS-SqlMaps-2_cn中文文档
ibatis常用sql语句,简单易懂,方便查询,初学者宝典
在ibatis日志信息中打印SQL语句的方法(个人总结)
动态sql拼接
ibatis的dtd
iBATIS-SqlMaps,ibatis映射文件
自己整理的非常好用 好东西向大家分享 └ ^o^ ┘
IBatis-SQL-MAPs 开发指南IBatis-SQL-MAPs 开发指南IBatis-SQL-MAPs 开发指南IBatis-SQL-MAPs 开发指南IBatis-SQL-MAPs 开发指南
iBATIS-SqlMaps
ibatis-SqlMaps-开发指南-version 1.0; ibatis-SqlMaps-开发指南-version 2