1. 新建一个JDBCStatementProblem工程, 使用我们之前的JDBCUtil.java和jdbc.properties属性文件, 以及UserDao

2. 修改UserDaoImpl.java

package com.lywgames.dao.impl;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.lywgames.dao.UserDao;
import com.lywgames.util.JDBCUtil;public class UserDaoImpl implements UserDao {public void login(String username, String password) {Connection conn = null; Statement st = null;ResultSet rs = null;try {// 1.获取连接对象conn = JDBCUtil.getConn(); // 2.创建statement, 跟数据库打交道, 一定需要这个对象st = conn.createStatement();// 3.执行查询sql, 获取ResultSet结果集String sql = "select * from user where username='"+ username  +"' and password='"+ password +"'";System.out.println(sql);rs = st.executeQuery(sql);// 4.使用ResultSet结果集遍历if(rs.next()){System.out.println("登录成功");}else{System.out.println("登录失败");}} catch (SQLException e) {e.printStackTrace();} finally {// 5.释放资源JDBCUtil.release(conn, st, rs);}}
}

3. 输入任意用户名和密码, 在密码处拼接1=1, 运行程序, 居然登录成功了。

4. Statement执行, 其实是拼接sql语句的。 先拼接sql语句, 然后在一起执行。如果变量里面带有了数据库的关键字, 那么一并认为是关键字, 不认为是普通的字符串。 这里拼接 or 1=1, 永远为真, 返回登录成功。

025_jdbc-mysql-Statement的sql注入问题相关推荐

  1. Java JDBC 使用Statement 产生sql注入问题

    #Java JDBC 使用Statement 产生sql注入问题 Statement 对象用于执行静态SQL语句并返回其生成的结果对象 Statement 对象执行SQL语句,存在SQL注入风险 代码 ...

  2. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  3. mysql qadir_MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  4. python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 创建连接conn→创建游标对象cursor→执行sql语句execute→获取数据fetchone→释放游标 ...

  5. mysql order by sql注入_mybatis中#{}和${}的区别及order by的sql注入问题

    前言略,直奔主题.. #{}相当于jdbc中的preparedstatement ${}是输出变量的值 简单的说就是#{}传过来的参数带单引号'',而${}传过来的参数不带单引号. 你可能说不明所以, ...

  6. mysql中防止sql注入

    什么是sql注入 图片来源:百度百科 python 操作mysql产生sql注入问题 不用ORM框架,框架中已经集成了防范sql注入的功能,使用pymysql实践一下: # 导入pymysql模块 i ...

  7. mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险

    当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...

  8. mysql注入攻击实_三十三、MySQL基础系列笔记之MySQL安全问题与SQL注入攻击

    SQL注入攻击大多数与程序有关系,程序不严谨是导致SQL注入攻击成功的一个原因.安全问题不容忽视,平常的开发中应关注安全问题.下面简单记录PHP中的SQL攻击问题. 什么是SQL注入攻击 SQL注入( ...

  9. mysql 绕过addslashes,SQL注入:Bypass addslashes()

    上次研究了GBK双字节注入,这次就得想办法用于实战,我们知道在很多时候,代码会对我们的输入进行过滤或者转义,过滤的的话我们想办法绕过就行,而转义,就得另想办法了 addslashes() 这是PHP中 ...

  10. 2020-08-02 Mysql数据库索引初识、备份、设计原则、JDBC连接、SQL注入、PreparedStatement对象使用、事务处理、连接池

    ------------------------索引---------------------- 定义:帮助MYSQL高效获取数据的数据结构 ----------主键索引----------prima ...

最新文章

  1. Session对象失效的客户端解决方法
  2. 使用urllib2简单爬取并保存内涵吧内涵段子指定分页的的描述信息
  3. [YTU]_2915(Shape系列-1)
  4. hive mysql 删除表_Hive-删除表(drop、truncate的区别)
  5. super icon
  6. php视频文件上传到服务器,上传和下载图片和视频到服务器
  7. boost::maximum_weighted_matching用法的测试程序
  8. 分享一个CSS3的网格系统架构 - ResponsiveAeon
  9. [HNOI2009] 有趣的数列
  10. Pascal之父、编程祖师爷尼古拉斯•威茨痛批:教授成了项目经理,大学过于“重论文轻教学“...
  11. JSP开发常用问题解决
  12. 第31次中国互联网络发展状况统计报告
  13. linux桌面只运行浏览器,分享|4 个 Linux 桌面上的轻量级图像浏览器
  14. 女程序员||想逃离的悲惨世界
  15. c语言sdk,C/C++ SDK
  16. 如何将图片做成二维码并加入文字?二维码文字内容的排版怎么做?
  17. TSC打印机打印条形码和二维码,JS实现方式
  18. C++:GCC编译:GCC编译C++程序分步流程
  19. 汉高2019年第三季度销售额增长0.8%,达50.77亿欧元
  20. 年薪百万单身程序员的枯燥生活

热门文章

  1. Nagios配置文件上传
  2. jquery高版本全选与全部选无法正常工作
  3. 了解Master Pages库
  4. 短期主义和长期主义的思考
  5. TikTok Shop新增三大站点,已开放申请
  6. 找出网络停机的四大原因—Vecloud微云
  7. vue init深度定制团队自己的Vue template
  8. fresco的使用教程
  9. python面向对象小练习
  10. 利用velocity.js将svg动起来