025_jdbc-mysql-Statement的sql注入问题
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注入问题相关推荐
- Java JDBC 使用Statement 产生sql注入问题
#Java JDBC 使用Statement 产生sql注入问题 Statement 对象用于执行静态SQL语句并返回其生成的结果对象 Statement 对象执行SQL语句,存在SQL注入风险 代码 ...
- pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法
当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...
- mysql qadir_MySQL 及 SQL 注入
MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...
- python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击
目录 part1:用python连接mysql 1.用python连接mysql的基本语法 创建连接conn→创建游标对象cursor→执行sql语句execute→获取数据fetchone→释放游标 ...
- mysql order by sql注入_mybatis中#{}和${}的区别及order by的sql注入问题
前言略,直奔主题.. #{}相当于jdbc中的preparedstatement ${}是输出变量的值 简单的说就是#{}传过来的参数带单引号'',而${}传过来的参数不带单引号. 你可能说不明所以, ...
- mysql中防止sql注入
什么是sql注入 图片来源:百度百科 python 操作mysql产生sql注入问题 不用ORM框架,框架中已经集成了防范sql注入的功能,使用pymysql实践一下: # 导入pymysql模块 i ...
- mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险
当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...
- mysql注入攻击实_三十三、MySQL基础系列笔记之MySQL安全问题与SQL注入攻击
SQL注入攻击大多数与程序有关系,程序不严谨是导致SQL注入攻击成功的一个原因.安全问题不容忽视,平常的开发中应关注安全问题.下面简单记录PHP中的SQL攻击问题. 什么是SQL注入攻击 SQL注入( ...
- mysql 绕过addslashes,SQL注入:Bypass addslashes()
上次研究了GBK双字节注入,这次就得想办法用于实战,我们知道在很多时候,代码会对我们的输入进行过滤或者转义,过滤的的话我们想办法绕过就行,而转义,就得另想办法了 addslashes() 这是PHP中 ...
- 2020-08-02 Mysql数据库索引初识、备份、设计原则、JDBC连接、SQL注入、PreparedStatement对象使用、事务处理、连接池
------------------------索引---------------------- 定义:帮助MYSQL高效获取数据的数据结构 ----------主键索引----------prima ...
最新文章
- Session对象失效的客户端解决方法
- 使用urllib2简单爬取并保存内涵吧内涵段子指定分页的的描述信息
- [YTU]_2915(Shape系列-1)
- hive mysql 删除表_Hive-删除表(drop、truncate的区别)
- super icon
- php视频文件上传到服务器,上传和下载图片和视频到服务器
- boost::maximum_weighted_matching用法的测试程序
- 分享一个CSS3的网格系统架构 - ResponsiveAeon
- [HNOI2009] 有趣的数列
- Pascal之父、编程祖师爷尼古拉斯•威茨痛批:教授成了项目经理,大学过于“重论文轻教学“...
- JSP开发常用问题解决
- 第31次中国互联网络发展状况统计报告
- linux桌面只运行浏览器,分享|4 个 Linux 桌面上的轻量级图像浏览器
- 女程序员||想逃离的悲惨世界
- c语言sdk,C/C++ SDK
- 如何将图片做成二维码并加入文字?二维码文字内容的排版怎么做?
- TSC打印机打印条形码和二维码,JS实现方式
- C++:GCC编译:GCC编译C++程序分步流程
- 汉高2019年第三季度销售额增长0.8%,达50.77亿欧元
- 年薪百万单身程序员的枯燥生活