如何防止SQL注入?

MyBatis解决方案

  • 使用 #{} 而不是 ${}

#{}

在SQL语句预编译后,${} 会被替换为 ? ,然后在执行 SQL 语句的时候,将参数替换 ? ,即使参数中有如'or 1=1'等敏感输入,也只会被作为参数,而不会被作为 SQL指令

${}

在SQL语句预编译的时候会将参数代替${},就可能造成SQL注入问题,可以对前端传参的参数做校验来防止注入。

posted @ 2023-02-12 17:04  pzistart  阅读(65)  评论(0编辑  收藏  举报