sql存在漏洞,容易被恶意攻击导致数据篡改,泄露=====本质,就是or语句," 'or' 1=1",1=1一定成立,所以一定能进入数据库====
package com.esd.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class sql注入 { public static void main(String[] args) { // login("huang","123456");本来的写法 login(" 'or' 1=1"," 'or'1=1"); } public static void login(String username,String password){ Connection conn= null; Statement st=null; ResultSet rs=null; try{ conn = JdbcUtils.getConnection(); st = conn.createStatement(); // SELECT * FROM users WHERE `name`='huang' AND`password`='123456' String sql="SELECT * FROM users WHERE `name`='"+username+"' AND`password`='"+password+"'";//'huang'>>'"username"',,,'password'>>'"password"' rs = st.executeQuery(sql); while(rs.next()){ System.out.println(rs.getString("name")); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtils.release(conn,st,rs); } } }
本来写法:指定了name和password

or写法,把这个数据库所有的数据全部爬出来了

本文来自博客园,作者:阿霖找BUG,转载请注明原文链接:https://www.cnblogs.com/lin-07/articles/16283105.html
浙公网安备 33010602011771号