sql注入漏洞的一种实例
在做毕业设计的时候,竟然碰到了一中叫sql注入漏洞的现象。
当笔者用一条sql语句查询时,select * from users where username='zf' and passwd='zf' or 1='1' 竟然将所有的数据全都查了出来。
检查用户合法性的代码如下:
//检查用户的合法性public boolean checkUser(String u,String p){boolean b=false;try {ConnDB db=new ConnDB();conn=db.getConn();String sql="select top 1 * from users where username=? and passwd=?";ps = conn.prepareStatement(sql);ps.setString(1, u);ps.setString(2, p);ResultSet rs = ps.executeQuery();if (rs.next()) {b=true;} }catch (Exception e) {e.printStackTrace();}finally{this.close();}return b;}
这两种方式都可以解决这种sql注入漏洞的。当然第一种方法是通用的,而第二种只能针对jsp语言的。
如有不足之处欢迎提出。