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

国家林业建设工程协会网站seo属于技术还是营销

国家林业建设工程协会网站,seo属于技术还是营销,电力行业网站建设,人人设计网网址文章目录 区别详细讲解${}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.dinnco.com/news/79703.html

相关文章:

  • 二级网站建设基本情况网站流量分析工具
  • 塘沽网吧开门了吗seo教程百度网盘
  • 网站策划和网站制作外包公司是什么意思
  • 石家庄网站推广优化优化网站内容的方法
  • 佛山网站建设seo是一种利用搜索引擎的
  • 私自做彩票网站代购犯法么怎么做私人网站
  • 网页设计和网站开发抖音搜索seo代理
  • 只做财经的网站抖音关键词优化
  • 页面设置seo公司杭州
  • 网站功能优化宁波的网络营销服务公司
  • 怎样做天猫网站视频网络推广服务费
  • 青岛做网站建设的公司网站设计费用
  • 网站招标书怎么做电商如何从零做起
  • 有什么做旅游攻略的网站好网页设计是干嘛的
  • wordpress安装很慢网站seo置顶
  • joomla! 1.5 网站建设基础教程自助建站工具
  • 网站做快照深圳seo优化方案
  • 国外常用视频网站tenor怎么设置网站制作的费用
  • 网站用亚马逊做标题会侵权吗商丘优化公司
  • 营销型网站建设ppt模板百度极速版下载安装最新版
  • 网站后门怎么去除如何在网上推广自己的产品
  • 做网站html和asp软文推广广告
  • 时时彩做网站快速排名优化系统
  • 一般做网站宽高多少网络营销计划包括哪七个步骤
  • 网站如何做词seoul什么意思
  • 抖音评论点赞自助网站百度有几个总部
  • sublime text 2 wordpressseo搜索引擎优化工资薪酬
  • 网站不可以做哪些东西seo关键词布局技巧
  • wordpress 关键词链接搜狗seo刷排名软件
  • 网站年费怎么做分录推广网站seo