码迷,mamicode.com
首页 > 数据库 > 详细

Statement 接口的应用(存在sql语句的注入风险)(转)

时间:2017-12-28 16:06:53      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:result   gpo   private   cti   sql   alt   print   final   info   

实现简单的登录功能

技术分享图片
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCFindAll {
    
    private static final String jdbcName="com.mysql.jdbc.Driver";
    private static final String url="jdbc:mysql://127.0.0.1:3306/emp_dept";
    private static final String user="root";
    private static final String password="123456";
    /*
     * 一个类(DriverManeger)四个接口(Connection、PreparedStatement、ResultSet、Statement)
     * */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn=null;
        try {
            Class.forName(jdbcName);
            conn=DriverManager.getConnection(url, user, password);
            //登录的操作
            
            String usr="aaawfwfwfwfw‘ or 1 #"; //sql注入的风险
            String pwd="334343343434";
            
            String sql="select id,usr,pwd from user where usr=‘"+usr+"‘ and pwd=‘"+pwd+"‘";
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery(sql);
            if(rs.next()){
                System.out.println("登录成功!进入主页面!");
            }else{
                System.out.println("用户名或密码错误!登录失败!");
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}
技术分享图片

其中下面标红部分存在sql注入风险

技术分享图片

在sql语句显示如下图:

技术分享图片

查询结果如下图:(显示了所有的查询结果)

技术分享图片

在这种情况下用户在不知道用户名和密码的情况下,轻易登录成功。所以不要用Statement 接口,用Preparedstatement接口。

 

Statement 接口的应用(存在sql语句的注入风险)(转)

标签:result   gpo   private   cti   sql   alt   print   final   info   

原文地址:https://www.cnblogs.com/ty-v/p/8135850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!