博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL注入
阅读量:7112 次
发布时间:2019-06-28

本文共 1476 字,大约阅读时间需要 4 分钟。

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 {@Testpublic 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中--表示注释,这样就可以使账号满足的条件下,使密码失效。

转载于:https://www.cnblogs.com/jingzhenhua/p/5984336.html

你可能感兴趣的文章
如何用Maven创建web项目(具体步骤)
查看>>
MATLAB如何定义函数
查看>>
LIMITS.H
查看>>
队列 - 从零开始实现by C++
查看>>
SonarQube4.4+Jenkins进行代码检查实例之三-单元測试分析
查看>>
HDU 5294 Tricks Device(多校2015 最大流+最短路啊)
查看>>
lucene总结——(十七)
查看>>
jax-rs示例
查看>>
Java的演化-Java8实战笔记
查看>>
获取AFP共享的文件夹及其权限
查看>>
windows IOCP入门的一些资料
查看>>
1142 - show view command denied to user
查看>>
042医疗项目-模块四:采购单模块—采购单明细添加查询,并且把数据添加到数据库中...
查看>>
[php] set the language of netbeans
查看>>
关于Visual Studio无法连接到Visual Studio 的Localhost Web服务器问题
查看>>
Linux档案属性与权限控制
查看>>
利用PIL库截屏的一个小例子
查看>>
VS2011最新版本 新功能 新增特性 简介Visual Studio 2011
查看>>
HTTP2.0之战
查看>>
Python 深究readline()
查看>>