1.#{}可以防SQL注入(采用的是语句的拼接),而${}不可以

为什么#{}可以防SQL注入?

1:SQL底层采用PreparedStatement中的setString()方法来设置参数,此方法会获取传递进来的参数的每个字符,然后进行循环对比,如果发现有敏感字符(如:单引号、双引号等),则会在前面加上一个'/'代表转义此符号,让其变为一个普通的字符串,不参与SQL语句的生成,达到防止SQL注入的效果。

${}应用场景为模糊查询

总结:#{}对传入的字符进行了过滤,从而达到了防SQL注入,而${}只是简单的进行传值。

 

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: