MyBatis入门十二:预防SQL注入攻击;(${}和#{}的区别)

本篇博客的内容不多,就一条:大部分情况下,使用#{}预编译的手段,而不是用${}原文传值。 

 目录

0.SQL注入攻击简介   &   #{}和${}简介

1.使用${}原文传值这种取值方式:

2.使用#{}预编译这种取值方式:

3.So,#{}预编译这种方式这么给力,为什么还需要${}原文传值这种方式嘞?


0.SQL注入攻击简介   &   #{}和${}简介

具体可参考:JDBC入门六:SQL注入攻击:什么是SQL注入攻击?;Java中引号嵌套的分析;

在实际应用中,在前台用户输入的时候,输入内容带有很大的随意性,其输入内容可能不当;然后,在后台输入项并没有对单引号等特殊字符进行转义等操作;因此,在前端页面上输入的包含单引号等特殊字符的字符串,作为SQL的一部分被带入到了SQL语句中被执行,就可能会造成数据泄露。

JDBC中采用JDBC入门七:SQL注入攻击:SQL注入攻击的解决策略:PreparedStatement预编译SQL;来解决SQL注入攻击问题。

但是,在mybatis中并不需要手动开发,mybatis已经帮我们封装好了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值