个人随笔
MyBatis模糊查询防止注入漏洞的方法
2020-09-11 22:12:31

模糊查询

  1. Select * from news where title like ‘%#{title}%’

在这种情况下使用#程序会报错,新手程序员就把#号改成了$,这样如果java代码层面没有对用户输入的内容做处理势必会产生SQL注入漏洞。

正确写法:

  1. <if test= userName != null and userName ! = ””>
  2. select * from news where tile like concat(‘%’,#{title}, ‘%’)

或者用标签bind:

  1. <bind name="bindTitle" value="'%'+title+'%'"/>
  2. select * from news where tile like #{bindTitle}

concat标签,在mysql中,可以拼接多个字符,但是如果有一天,你的数据库突然变成了oracle,concat就会报错了,因为它只能接受两个参数。这个时候用bind就比较好了。

 4
有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2