sql注入原理【java】

String sql=”select * from judy88 where ” + “pname=’” + username + “’ and password=’” + password + “’”;
如果是加号必须用”“号 进行括起来。
这里写图片描述

解决注入问题。分为3个方法
1过滤用户输入的数据中是否包含非法字符
2分步校验,先使用用户名查询如果有次用户名然后再使用密码检验
3使用preparedStatement

PreparedStatement是什么?
他叫做预编译声明
他是Statement的子接口。可以使用PreparedStatement来替换Statement
PreparedStatement的好处是什么?
1防止Sql攻击
2提高代码的可读性,可维护性
3提高效率

Preparestatement的使用
1使用connection的preparestatement(string sql)创建他就是让一条sql模板绑定
2调用Preparestatement的setxxx()系列方法为问号设置值
这里写图片描述

3调用executeUpdate()或者executeQuery()方法,

解决了减少拼接问题的。

如果使用预编译。进行执行sql语句的过程
1注册
2连接
3语句,参数使用的是?
4使用预编译,参数里面是sql语句
5使用与编辑传过去参数,参数类型如果是int则使用的是setint,如果是string则使用的是setString
6进行查询操作,把查询的结果付给resultset
7执行next();

猜你喜欢

转载自blog.csdn.net/dtttyc/article/details/80386064