# MyBatis:预防SQL注入攻击
# 导航
# SQL注入攻击
- SQL注入是指攻击者利用SQL漏洞,绕过系统约束,越权获取数据的攻击方法
例如如下sql:
select * from a where name='"+name+"'
1
正常情况:name:张三
select * from a where name='张三'
1
SQL注入攻击:name:' or 1=1 or 1='
select * from a where name ='' or 1=1 or 1=''
1
# MyBatis两种传值方式
- ${}文本替换,未经任何处理对SQL文本处理
- #{}预编译传值,使用预编译传值可以预防SQL注入
所以实际开发中,主要都是使用 #{} 而不用${},${}会产生sql注入,如果要使用${},就不能让前端传入