java学习笔记:PreparedStatement解决sql注入
sql注入
----
sql注入:由于没有对用户输入进行充分检查,而SQL又是拼接而成,在用户输入参数时,在参数中添加一些SQL 关键字,达到改变SQL运行结果的目的,也可以完成恶意攻击。
1_原因:
String sql = select * from user where username =' zhangsan' -- ' and password =' ' ;
例如:
恶意注入方式一:输入 username: 随意 password: ' or '1'='1
select * from user where username ='xxxxx' and password ='xxx' or '1'='1';
* and 优先级 执行 高于 or
恶意注入方式二、在SQL添加 -- 是mysql的注释 用户名框:输入 zhangsan' 空格--空格 password 随意
select * from user where username ='zhangsan' -- ' and password ='' ;
注意:以上的 zhangsan' 空格--空格 中的zhangsan是数据库存在的
解决sql注入
----
1.PreparedStatement解决sql注入,重要步骤:
PreparedStatement是Statement的子接口,它的实例