首页 > 数据库技术 > 详细

SQL注入攻击

时间:2018-07-03 22:15:51      阅读:196      评论:0      收藏:0      [点我收藏+]

SQL注入攻击

在页面中输入账号和密码时,密码的设置为‘or ‘1‘=‘1时,在进入后端服务器对数据库中的人员信息进行查询时,组成的查询语句为:

select * from hhuser where nick=‘zhangsan‘ and passwords=‘ ‘ or ‘1‘ = ‘1‘,该语句无论用户名和密码是啥都可以查到满足‘1’=‘1’的条件,是查询的用户列表不为空。还可以利用SQL攻击对数据造成不可挽回的灾难。如在密码后面加上‘;drop table aaa,就会对数据表进行删除。

SQL注入防范

  1、使用预编译语句。

  可以使用预编译语句PreparedStatement进行数据查询,通过Statement对象执行SQL语句,需要将SQL语句发送给DBMS,有DBMS编译后再执行。预编译实例:

  String sql = “select * from hhuser where nick = ? and passwords = ?”;

  PreparedStatement st = conn.prepareStatement(sql);

  st.setString(1,nickname);

  st.setString(2,password);

  ResultSet rs = st.executeQuery();

  2、使用ORM框架

  使用IBATIS、Hibernate等框架,因为这些框架对关键字或者特殊字符进行转移。

  3、避免免密码明文存放。

  4、处理好响应的异常。

SQL注入攻击

原文:https://www.cnblogs.com/youzhongmin/p/9255693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!