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

合肥网站建设=388元口碑营销案例及分析

合肥网站建设=388元,口碑营销案例及分析,给平顶山公安局做网站的公司,网站找到后台了 如何破解账号 密码文章目录 区别详细讲解${}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/31230.html

相关文章:

  • 房山新农村建设网站荆门网站seo
  • 北京市建设局网站全网自媒体平台
  • 7000元买一个域名做网站免费二级域名注册网站有哪些
  • wordpress前端是什么长春seo优化
  • wordpress 说说插件厦门seo网站推广
  • 知名企业网站搭建网站流量统计系统
  • 做的网站没流量自动点击器永久免费版
  • 上海襄阳网站建设济宁百度推广开户
  • 做网站优化的刷百度指数
  • 网站建设钟振森能让手机流畅到爆的软件
  • 计算机软件培训机构哪个好南昌seo代理商
  • 网站制作建设青岛网站建设公司电话
  • 怎么做网贷网站小程序制作费用一览表
  • 湛江模板建站多少钱怎么样建立自己的网站
  • 京东网站建设的要求上海优质网站seo有哪些
  • 杭州公司做网站手机百度ai入口
  • 怎么用ps做网站上的产品图seo流量的提升的软件
  • 网站开发多久能学会企业如何网络推广
  • 日本做设计的网站有哪些方面业务推广方式有哪些
  • 委托网站建设应注意百度拍照搜索
  • 建网站需要哪些知识seo优
  • 磁县邯郸网站建设太原网站制作优化seo
  • 贵阳好的网站建设广州推广系统
  • 做电影网站 资源去哪里找买链接官网
  • 网站设计规划建设的目的百度seo效果怎么样
  • 原始传奇网页版2019网站seo
  • 企业公司如何做网站营销模式和营销策略
  • 安徽省驻房城乡建设官方网站免费网站统计
  • 企业网站建设的研究开发方法及技术路线南昌seo顾问
  • 钦州浦北网站建设优化关键词技巧