文档章节

Mybatis 中$与#的区别,预防SQL注入

大雁南飞了
 大雁南飞了
发布于 11/17 14:14
字数 362
阅读 9
收藏 1

一直没注意Mybatis 中$与#的区别,当然也是更习惯使用#,没想到避免了SQL注入,但是由于要处理项目中安全渗透的问题,不可避免的又遇到了这个问题,特此记录一下。

首先是共同点:

 在mybatis中的$与#都是在sql中动态的传入参数。

select id,name,age from user where name=#{name}

这个name是动态的,可变的,当传入什么样的值,就会根据你传入的值执行sql语句。

其次是两者的区别:

1 #是将传入的值当做字符串的形式

select id,name,age from user where id =#{id},
//当前端把id值1,传入到后台的时候,就相当于
select id,name,age from user where id ='1'.

 2 $是将传入的数据直接显示生成sql语句

select id,name,age from user where id =#{id},
//当前端把id值1,传入到后台的时候,就相当于
select id,name,age from user where id =1.

$是将传入的数据直接显示生成sql语句,这样就容易造成SQL注入。

© 著作权归作者所有

共有 人打赏支持
大雁南飞了
粉丝 3
博文 18
码字总数 3057
作品 0
深圳
程序员
私信 提问
baomidou/mybatis-plus

为简化开发工作、提高生产率而生 简介 | Intro Mybatis 增强工具包 - 只做增强不做改变,简化操作 技术讨论 QQ 群 576493122 优点 | Advantages 无侵入:Mybatis-Plus 在 Mybatis 的基础上进...

baomidou
2016/01/25
0
0
baomidou/mybatisplus-spring-boot-starter

#mybatisplus-spring-boot-starter mybatisplus-spring-boot-starter 为 Mybatis-Plus 快速集成 spring-boot 简化配置而生,不再需拿 MyBatis 和 Hibernate 相比,mybatis-plus 作为 mybati......

baomidou
2017/05/05
0
0
mybatis--#{}与${}的区别

首先,谈谈mybatis怎么防止sql注入 上述是mybatis的mapping中一段代码,当请求的时候,控制台输出 我们会发现,无论输入什么参数,打印出的sql都是这样。原因是: mybatis启用了预编译功能,...

求是科技
2016/10/12
20
0
Mybatis # 和 $ 的区别

感谢:http://www.cnblogs.com/dato/p/7027949.html 浅谈 Mybatis中的 ${ } 和 #{ }的区别 好了,真正做开发也差不多一年了。一直都是看别人的博客,自己懒得写,而且也不会写博客,今天就开...

zyx870805
03/30
0
0
浅谈 Mybatis中的 ${ } 和 #{ }的区别

一、举例说明 1 select * from user where name = "dato";23 select * from user where name = #{name};45 select * from user where name = ${name}; 一般情况下,我们都不会注意到这里面有......

辣妈程序媛
03/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat编译超过64k大小的jsp文件报错原因

  今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回...

SEOwhywhy
16分钟前
0
0
flutter http 请求客户端

1、pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)。 在pubspec.yaml中,通过网址“https://pub.dartlang.org/packages/http#-installing-tab-”确认版本号后,将http(0...

渣渣曦
17分钟前
0
0
Django基本命令及moduls举例

一、Django基本命令 1.创建项目 django-admin.py startproject mysite 创建后的项目结构:- mysite - mysite #对整个程序进行配置 - init #导入包专用- settings ...

枫叶云
31分钟前
4
0
zabbix安装

rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm 安装jdk rpm -ivh (自行在网上下载rpm包) 安装php并修改相应参数 yum -y install php56w php56w-gd php56w-mysqlnd php56w-bcmath......

muoushi
33分钟前
3
0
MySQL自增属性auto_increment_increment和auto_increment_offset

MySQL的系统变量或会话变量auto_increment_increment(自增步长)和auto_increment_offset(自增偏移量)控制着数据表的自增列ID。 mysql> show tables;Empty set (0.00 sec)mysql> CREATE TA......

野雪球
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部