当前位置: 首页 > news >正文

网站流量统计分析互联网营销外包推广

网站流量统计分析,互联网营销外包推广,网站开发包括,建设网站话术文章目录 区别详细讲解${}sql注入案例 区别 #会进行预编译,安全,通过#{}传入的参数 mybatis会认为是一个字符串,自动加上引号“” $ 不会进行预编译,通过$ 传入的参数会直接取出来使用,可能会产生sql注入风险&#xff…

文章目录

    • 区别
    • 详细讲解
    • ${}sql注入案例

区别

#会进行预编译,安全,通过#{}传入的参数 mybatis会认为是一个字符串,自动加上引号“”

$ 不会进行预编译,通过$ 传入的参数会直接取出来使用,可能会产生sql注入风险,只有当传入的是表名时必须用$传入,其他的都建议用#{}传入

详细讲解

MyBatis中使用parameterType向SQL语句传参,parameterType支持的类型可以是基本类型int,String,HashMap和java自定义类型。
在SQL中引用这些参数的时候,可以使用两种方式:

#{parameterName}
${parameterName}

首先,我们说一下这两种引用参数时的区别,使用#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,并自动加上引号’ ',例如传入参数是“tom”,那么在下面SQL中:

Select * from user where name = #{name}

使用的时候就会转换为:

Select * from user where name = 'tom'; 

同时使用${parameterName}的时候在下面SQL中

Select * from user where name = ${name}

就会直接转换为:

Select * from user  where name = tom

简单说#{}是经过预编译的,是安全的。
而${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。

#{} 这种取值是编译好SQL语句再取值
${} 这种是取值以后再去编译SQL语句

${}sql注入案例

以下用一个示例来看一下$传参sql注入的问题

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot.store.mapper.UserMapper"><select id="selectByUsername">select *  from t_user where username = ${username}</select>
</mapper>

在单元测试中传入参数如下:

@Test
public void reg1(){userService.selectByUsername("tom or phone = 123");}

日志打印sql如下:

select * from t_user where username = tom or phone = 123

可以看到,我们只是想通过username字段查询,但是条件里面却被拼接了phone字段的条件。

接着我们把UserMapper.xml中的$替换为#
UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot.store.mapper.UserMapper"><select id="selectByUsername">select *  from t_user where username = ${username}</select>
</mapper>

日志打印sql如下:

select * from t_user where username = 'tom or phone = 123'

此时只会根据username条件进行查询。

http://www.yayakq.cn/news/167173/

相关文章:

  • 网站转发浙江省建筑信息港
  • 古田网站建设小米商城官方网站入口
  • 电子商务网站建设与实践第一章课后房山青岛网站建设
  • 国外网站推荐网址大全hao123上网导航
  • 网站打不开用什么浏览器全世界做会展介绍的网站排名
  • 莱州市规划建设管理局网站wordpress获取分类导航
  • 个人可以做网站导航广州建设专业网站
  • 设计网站思路如何写网页图片提取在线
  • 做最好的导航网站房山企业网站建设公司
  • 后台的企业网站模板wordpress支持论坛
  • 兰州建设网站的网站阿里云1m宽带做网站卡吗
  • 备案时网站名称可以重复吗莆田哪里有学做网站的
  • 珠海正规网站制作系统广州市数商云网络科技有限公司
  • 网站攻击一般有那些wordpress萌主题下载
  • 网站开发详细报价wordpress媒体库查看404
  • 做购物网站的费用推广模式怎么写
  • 个人工作室网站设计怎样做网站营销
  • 创新的盐城网站开发无锡网站设计厂家
  • 郴州网站推广c 网站开发模板
  • 做盗版网站的国际购物app
  • 为什么谷歌网站打不开如何配置iis网站
  • 自助建站平台便宜苏州市现代建设咨询管理公司
  • 广州网站设计品牌建设归哪个部门管
  • 国外网站访问速度慢网页制作网站首页
  • 绿色模板网站简单的装x编程代码
  • asp添加网站管理员ps工具设计网站
  • 咨询网站建设wordpress标签 扩展
  • 用dw做网站图片的基本尺寸html5搭建网页游戏
  • 监控企业网站模板获取网站访问者qq号
  • 网站建设的基本准则是什么做二手车网站需要什么手续