page contents

Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入?

轩辕小不懂 发布于 2021-08-28 09:32
阅读 699
收藏 0
分类:Java开发
1801
Nen
Nen
- 程序员

1、PreparedStatement支持动态设置参数,Statement不支持。

2、PreparedStatement可避免如类似 单引号 的编码麻烦,Statement不可以。

3、PreparedStatement支持预编译,Statement不支持。

4、在SQL语句出错时PreparedStatement不易检查,而Statement则更便于查错。

5、PreparedStatement可防止SQL助于,更加安全,而Statement不行。

补充说明-什么是SQL注入以及应对策略: 通过SQL语句的拼接达到无参数查询数据库数据目的的方法。如将要执行的SQL语句为 select * from table where name = “+appName+”,利用appName参数值的输入,来生成恶意的SQL语句,如将[‘or’1’=‘1’] 传入可在数据库中执行。因此可以采用PrepareStatement来避免SQL注入,在服务器端接收参数数据后,进行验证,此时PrepareStatement会自动检测,而Statement不行,需要手工检测。

请先 登录 后评论