import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Jdbc_mysql03 { public static void main(String [] args){ try{ // 尝试进行SQL注入攻击 System.out.println("尝试SQL注入攻击..."); authenticateUser("123","12345' or '1=1"); }catch (Exception e){ e.printStackTrace(); } } private static void authenticateUser(String name,String password) throws Exception{ Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/xiaolong","root","123456"); Statement statement=connection.createStatement(); String query="SELECT * FROM MYSQLlock WHERE name='" + name + "' AND password= '"+password+"'"; ResultSet resultSet= statement.executeQuery(query); if(resultSet.next()){ System.out.println("身份验证成功,用户名:"+resultSet.getString("name")+",角色"+resultSet.getString(password)); }else{ System.out.println("身份验证失败"); } connection.close(); } }
时间: 2023-06-09 20:01:53 浏览: 384
java+sql.rar_SQL java_java s_java sql_java sql 简单_java.sql.
这个问题属于技术问题,可以回答。这是一段Java代码,尝试进行SQL注入攻击。在authenticateUser方法中,传入了name和password参数,query语句中将这两个参数拼接在一起。如果传入的password中包含1=1,就可以绕过身份验证,导致身份验证成功。这是一种常见的安全漏洞,需要注意防范。
阅读全文