MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
2016-03-21 11:05
330 查看
字符串替换
默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用:
ORDER BY ${columnName}
这里MyBatis不会修改或转义字符串。
重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。
来自MyBatis 3 User Guide Simplified Chinese.pdf,
默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用:
ORDER BY ${columnName}
这里MyBatis不会修改或转义字符串。
重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。
来自MyBatis 3 User Guide Simplified Chinese.pdf,
相关文章推荐
- Java数组初始化
- duplicate symbols for architecture arm64 错误
- Send_44_info
- Receive_50_info
- 服务器被挂马的一般解决方法
- 黑客如何快速查找网站后台地址方法整理
- 收集一些常见的webshell后门的特征码
- EXCEL中如何固定工作表头
- 求一网站swf广告条幅制作软件 SwishMax
- TCP与UDP的区别,以及它们各自的定义
- 简简单单将Swf打回“源”形
- 【转载】dedecms中的{dede:php}{/dede:php}的详细用法
- 手机网站浏览器验证跳转js代码
- html中tppabs什么作用?怎么用啊?
- 如果电脑不小心按了关机,但突然又不想关机了,应该怎样立刻取消?
- dedecms重新定义cn_substr函数截取字数准确 截取的字符串不准
- js document.write()使用介绍
- dede 获取当前栏目的上一级栏目名称,和链接
- MySQL Order By Rand()效率
- 织梦dedecms联动级别前台调用