什么是SQL注入攻击以及如何防止SQL注入攻击

本文介绍了SQL注入攻击的概念,通过案例展示了攻击发生的原理,即用户输入恶意参数导致SQL语句逻辑变化。同时,文章提供了两种防止SQL注入的方法:一是参数校验,但不推荐因代码繁琐;二是推荐使用PreparedStatement,它可以避免SQL语句被篡改,提高安全性并提升执行效率。
摘要由CSDN通过智能技术生成

一、什么是SQL注入攻击?

CASE 1 :
模拟用户登陆案例
(1)准备数据

use jt_db; 
create table user( 
	id int primary key auto_increment,
	username varchar(50), 
	password varchar(50)
); 
insert into user values(null,'张三','123'); 
insert into user values(null,'李四','234');

(2)创建LoginUser 类,提供 main 方法 和 login 方法。

public class LoginUser {
	/*
	 * 1.提示用户在控制台输入用户名和密码
	 * 2.在程序中接收用户输入的用户名和密码
	 * 3.通过JDBC程序,根据用户名和密码查询user表,如果能查询到记录,则说明用户名
	 *  和密码正确,允许用户登录,否则,说明用户名和密码不正确,提示用户登录失败
	 * 
	 */
	public static void main(String[] args) {
		//0.创建一个scanner对象
		Scanner in = new Scanner(System.in);
		//1.提示用户在控制台输入用户名和密码
		System.out.println("请登录:");
		System.out.println("请输入用户名");
		//2.在程序中接收用户输入的用户名和密码
		String username = in.nextLine();
		//3.提示输入密码并接受密码
		System.out.println("请输入密码");
		String password = in.nextLine();
		//4.调用login方法,登录用户
		login(u
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值