• SQL注入


    public class Login {
        public boolean login(String card,String password){
            
            boolean rtn= false;
            
            try {
    
                //1、加载驱动:加载数据库提供的驱动类
                Class.forName("oracle.jdbc.driver.OracleDriver");
                
                //2、获取数据库连接,通过java的驱动管理器
                Connection conn = DriverManager.getConnection(
                        "jdbc:oracle:thin:@localhost:1521:orcl ",
                        "test01", "131281huazioo");
                
                //3、获得操作数据库的声明
                Statement st=conn.createStatement();
                //sql语句
                String sql= "select * from bankcard where card='"+card+"'and password='"+password+"'";
                //执行sql语句
                ResultSet rs=st.executeQuery(sql);
                
                rtn=rs.next();
                rs.close();
                st.close();
                conn.close();
            }catch(Exception e){
                e.printStackTrace();
            }
            return rtn;
        }
    }

    以上代码会出现SQL注入

    如:

    public class Testlogin {
    
    @Test
    public void test() {
    Login a=new Login();
    

    if(a.login("123123123' or 1='1", "12312312313' or 1='1")){                    //无论输入什么数据只要加or 1=1就可以成功
        System.out.println("成功!");
    }

    }
    
    }

     or 1=1 加到where条件后保证了条件永远为真,相当于没加条件。

    原SQL语句改为:select * from bankcard where card='123132' or 1=1;

    1 public void test() {
    2         Login a=new Login();
    3         if(a.login("108'--", "12312312313")){
    4             System.out.println("成功!");
    5         }
    6     }

    加入--将后面的条件注释掉,在Oracle中--表示注释,这样就可以使账号满足的条件下,使密码失效。

  • 相关阅读:
    php 文件直接下载
    公钥、私钥与数字签名
    php swoole 安装与使用
    06-Ubuntu18.04&16.04安装PHP(7.0|7.1|7.2|7.3)
    解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误
    浏览器禁用返回按钮
    js 鼠标放上选中
    vue 组件切换
    VSCode常用设置
    How to use electron-builder in a Vue project
  • 原文地址:https://www.cnblogs.com/jingzhenhua/p/5984336.html
Copyright © 2020-2023  润新知