水无月白_yy 2020-08-27 10:58 采纳率: 0%
浏览 92
已采纳

小白提问之0001——SQL注入问题失效问题

在演示sql注入问题演示的时候,发现有个问题,但是自己弄不明白,请教各位大佬

public static void login() {
        String name = "柳岩' -- ";
        String  id = "1";//模拟密码

        Connection conn = null;
        Statement st = null;
        ResultSet rst = null;
        try {
            conn = JDBCUtils01.getConnection();
            st = conn.createStatement();

            rst = st.executeQuery("select * from user where name = '" + name + "'and id ='" + id+"'");

            //处理结果集
            while (rst.next()) {
                int u_id = rst.getInt(1);
                String u_name = rst.getString("name");
            }
            if (rst.next()) {
                System.out.println("登录成功,欢迎您 " + rst.getString("name"));
            } else {
                System.out.println("用户名或者密码错误");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        JDBCUtils01.release(conn,st,rst);
        }
    }

while (rst.next())是之前写错的,忘记删,演示的时候发现当while存在的时候就会报用户名错误,注释掉就可以了。
求指点~

  • 写回答

2条回答 默认 最新

  • jingluan666 2020-08-27 11:07
    关注

    因为rst.next()读取一条记录,因为数据库只返回了一条,读完了再读就没有了,所以while (rst.next()) 不能加

    另外select * from user不合适,把所有的字段都取出来了,如果表中包含敏感信息,岂不是都返回了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂