一、SQL注入现象

用户名:xxx;

密码:xxx' or '1'='1; -->登录成功

用户输入的信息中含有sql关键字,而这些关键字加入了sql的编译。

二、解决SQL注入

1.要求用户提供的信息不参与SQL编译过程,即使提供的信息中含有关键字,只要没有参与SQL编译就不会出现问题;

2.要想用户信息不参与sql编译可以使用 import java.sql.PreparedStatement,PreparedStatement接口继承了java.sql.Statement;

3.PreparedStatement是属于预编译数据库操作对象,预先对SQL语句的框架进行编译,然后再向SQL传“值”

//当业务需求需要SQL注入或SQL语句拼接的话,应该使用Statement,如对表进行升序降序;因此,并不是PreparedStatement一定优于Statement,只是各有各的专项;

posted on 2021-09-20 11:08  比企苦  阅读(45)  评论(0编辑  收藏  举报