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

国家林业建设工程协会网站整站排名优化品牌

国家林业建设工程协会网站,整站排名优化品牌,wordpress文章变成html代码,织梦网站管理系统文章目录 区别详细讲解${}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.qdjiajiao.com/news/8020.html

相关文章:

  • 国企网站建设站长是什么级别
  • 网站建设合同书(范本)手机怎么制作网站
  • 聊城seo整站优化报价电商网站订烟
  • 提供手机网站建设天天seo伪原创工具
  • vs2010网站制作教程国内最好的搜索引擎
  • 用旧手机做网站谷歌seo博客
  • 网站制作费一般多少2345浏览器网址
  • 互联网服务平台生成二维码百度关键词优化手段
  • 设计的有趣的网站推荐网络推广文案怎么写
  • 中国建设网站的公司百度关键词seo年度费用
  • 企业网站推广解决方案web前端培训费用大概多少
  • 舞蹈网站模板今日热点新闻头条国内
  • 网站程序开发要点营销推广策略
  • 卢松松网站的百度广告怎么做的推广网站推广
  • 官方网站下载拼多多app网站排名优化专业定制
  • 做网站好的网站建设公司百度投诉平台在哪里投诉
  • java 做视频网站实例网站建设与维护
  • 松原网站制作北京推广服务
  • 苹果官网首页刷移动关键词优化
  • 公司建立网站seo学堂
  • 检查网站打开速度线上职业技能培训平台
  • 网站无法上传照片优化关键词排名的工具
  • 如何利用阿里云做网站seo排名优化公司
  • asp服装商城网站源码免费找精准客户的app
  • sb域名怎么注册宁波seo网络推广定制多少钱
  • 做旅游网站的引言上海网站营销推广
  • 网站 地区加关键词个人网页
  • 做网站开发需要的英语水平免费推广网站平台
  • 辽源做网站公司百度优化是什么
  • 高校支付网站建设费需要入无形资产免费数据统计网站