JDBC-API详解-PreparedStatement-SQL注入演示
package Test; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class JDBCdemo5_UserLogin { /* *演示用户登录 * */ @Test public void testUserLogin() throws Exception { //1.注册驱动 //Class.forName("com.mysql.jdbc.Driver"); //2.获取连接 String url = "jdbc:mysql:///test?useSSL=false"; String username = "root"; String password = "1234"; Connection conn = DriverManager.getConnection(url, username, password); //接收用户输入用户名和密码 String name="zhangsan"; String pwd="123"; String Sql=" select * from tb_user where username='"+name+"' and password='"+pwd+"' "; //获取stmt对象 Statement stmt = conn.createStatement(); //执行sql ResultSet rs = stmt.executeQuery(Sql); //判断登录是否成功 if (rs.next()){ System.out.println("登录成功"); }else { System.out.println("登录失败"); } //7.释放资源 rs.close(); stmt.close(); conn.close(); } /* *演示sql注入 * ' or '1' = '1 * * select * from tb_user where username='dawdsan' and password='' or '1' = '1' * 通过输入的语句来修改事先定义好的sql语句本身的意义 * */ @Test public void testlogin_Inject() throws Exception { //1.注册驱动 //Class.forName("com.mysql.jdbc.Driver"); //2.获取连接 String url = "jdbc:mysql:///test?useSSL=false"; String username = "root"; String password = "1234"; Connection conn = DriverManager.getConnection(url, username, password); //接收用户输入用户名和密码 String name="dawdsan"; String pwd="' or '1' = '1"; String Sql=" select * from tb_user where username='"+name+"' and password='"+pwd+"' "; System.out.println(Sql); //获取stmt对象 Statement stmt = conn.createStatement(); //执行sql ResultSet rs = stmt.executeQuery(Sql); //判断登录是否成功 if (rs.next()){ System.out.println("登录成功"); }else { System.out.println("登录失败"); } //7.释放资源 rs.close(); stmt.close(); conn.close(); } }
分类:
JavaWeb / JDBC
, JavaWeb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏