数据库截图:
package TestJDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* sql注入攻击的演示代码
* @author Administrator
*
*/
public class CopyOfSQLDemo {
public static void main(String[] args) {
CopyOfSQLDemo demo = new CopyOfSQLDemo();
demo.login("a' or 'a'='a", "a' or 'a'='a");
//欢迎:zs
}
public static Connection getConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/web08";
return DriverManager.getConnection(url, "root", "root");
}
public void login(String username,String password){
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
conn = getConnection();
st = conn.createStatement();
String sql = "select * from user where " +
"username='"+username+
"'and password='"+password+"'";
//sql注入攻击演示,等价代码
//String sql = "select * from user where username='a' or 'a'='a'and password='a' or 'a'='a'";
rs = st.executeQuery(sql);
if(rs.next()){
System.out.println("欢迎:"+rs.getString("username"));
}else {
System.out.println("用户名或密码错误");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null) rs.close();
if(st!=null) st.close();
if(conn!=null) conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}