微信搜索:小大白日志

记一次sql注入的解决方案

点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。

本文在公众号文章已同步,还有各种一线大厂面试原题、我的学习系列笔记。

今天业务提了个模糊查询,一听就知道这种问题有坑,肯定涉及到sql注入,sql注入大家都了解了,那怎么解决呢?可以采用两种方法:mybatis中采用标签、sql中用concat()函数

  • <bind>标签
<select id="i1">
 <!--dao文件中@Param("t")传入t变量,bind中的name属性值mytag会变成变量可直接在sql中使用-->
    <bind name="mytag" value=" '%'+t+'%' "/>
   select * from table where tag like #{mytag}
  <!--符号#{}的效果等价于SSH中PrepareStatement预编译把参数变为字串-->
</select>
  • concat函数
<select id="i1">
  <!--dao文件中@Param("t")传入t变量,mysql中concat可写多个参数,如下;oracle中concat只能写两个参数,此时可用多个concat拼成两个参数的形式-->
  select * from table where tag like concat('%',#{t},'%')
  <!--Oracel的写法-->
   select * from table where tag like concat('%',concat(#{t},'%'}))
</select>

OK,如果文章哪里有错误或不足,欢迎各位留言。
创作不易,各位的「三连」是二少创作的最大动力!我们下期见!

posted @ 2021-06-06 10:43  明天喝可乐  阅读(86)  评论(0)    收藏  举报