实现简单的登录功能

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语句的注入风险)的更多相关文章

  1. JDBC模拟登陆及SQL语句防注入问题

    实现模拟登陆效果:基于表Tencent package boom; import java.sql.Connection; import java.sql.DriverManager; import ...

  2. 接口方式[推荐]/动态SQL语句

    MVC目录结构: Src -- com.shxt.servlet[控制层] --com.shxt.service[业务逻辑层] --com.shxt.model[实体Bean,用来承载数据] --co ...

  3. JDBC03 Statement接口

    Statement接口 用于执行静态SQL语句并返回它所生成结果的对象 三种Statem类 Statement:由createStatement创建,用于发送简单的SQL语句(不带参数的),会有SQL ...

  4. JDBC 用PreparedStatement语句动态操作SQL语句

    https://blog.csdn.net/u014453898/article/details/79038187 1.Statement 和 PreparedStatement: Statement ...

  5. java执行多条SQL语句

    一次执行多条SQL的技术要点如下: DatabaseMetaData接口是描述有关数据库的整体综合信息,由于DatabaseMetaData是接口,所以没有构造方法,故不能使用new来创建Databa ...

  6. 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)

    一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...

  7. mysql基础-- 一条请求执行多条SQL语句

    最近做一个数据库初始化工具的时候发现了这个问题,就是在一个Statement中执行一条SQL语句的时候可以正确执行,如果同时执行多条,就会报SQL语法错误,伤透了脑筋. 经过网上查找,发现有两种解决办 ...

  8. iBatis2 SqlMap中经常使用sql语句

    本来我也不喜欢iBatis,那是由于我当时还不怎么会用它,如今我想说,iBatis是个好东西,不信你试试看.以下是我在项目实践中对iBatis的一个小总结.希望帮助众多在疲于iBatis编码而无暇思考 ...

  9. springboot打印sql语句及执行时间

    有时候我们程序的接口比较耗时,需要优化,这时我们可能需要了解该接口执行了哪些sql语句以及耗时 1.引入jar包 <!--监控sql日志--> <dependency> < ...

随机推荐

  1. 【POJ】3280 Cheapest Palindrome(区间dp)

    Cheapest Palindrome Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10943   Accepted: 5 ...

  2. Memory leak by misusing Autofac

    Recently I’ve found out that we can easily cause a memory leaks in our .net application by improper ...

  3. 显示本月日历demo

    import java.text.DateFormatSymbols; import java.util.Calendar; import java.util.GregorianCalendar; p ...

  4. IIS Worker Process 遇到了一个问题,需要关闭

    服务器为2003系统,平时都用的好好的,但是最近经常跳出了!IIS Worker Process 遇到问题关闭! 第二个对话框还有个请单击此处的连接 以下文件将包含在这个错误报告中:C:\DOCUME ...

  5. 如何用xMind打开.mmap文件

    首先右键单击mmap格式文档,选择“属性” > “更改了打开方式” > 选择使用Xmind软件打开.然后双击mmap格式文档,就可以用Xmind打开了!

  6. 热门数据挖掘模型应用入门(一): LASSO回归

    热门数据挖掘模型应用入门(一): LASSO回归 2016-10-10 20:46 作者简介: 侯澄钧,毕业于俄亥俄州立大学运筹学博士项目, 目前在美国从事个人保险产品(Personal Line)相 ...

  7. jstack来分析linux服务器上Java应用服务性能异常

    使用jdk自带的jstack来分析linux服务器上应用服务性能异常: 1.top查找出哪个进程消耗的系统资源情况 [op1@jira ~]$ top top - 19:23:43 up 22 day ...

  8. KindEditor 和 xss过滤

    KindEditor   1.进入官网 2.下载 官网下载:http://kindeditor.net/down.php 本地下载:http://files.cnblogs.com/files/wup ...

  9. Linux实战教学笔记43:squid代理与缓存实践(二)

    第6章 squid代理模式案例 6.1 squid传统正向代理生产使用案例 6.1.1 squid传统正向代理两种方案 (1)普通代理服务器 作为代理服务器,这是SQUID的最基本功能:通过在squi ...

  10. C++版修真小说

    终有一天我手中的编译器将成为我灵魂的一部分,这世界在我的眼中将被代码重构,我将看到山川无尽银河无垠都汇成二进制的数字河流,过往英雄都在我脑海眼前一一浮现,而我听到无数码农跪倒在我的程序面前呼喊. 他们 ...