欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP网页防止sql注入攻击

程序员文章站 2022-12-01 10:33:23
sql注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是sql语法里的一些组合,通过执行sql语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致...

sql注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是sql语法里的一些组合,通过执行sql语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入。

preparestatement方法是防止sql注入的简单有效手段

preparedstatement和statement的区别
1、preparedstatement是statement的子方法
2、preparedstatement可以防止sql注入的问题
3、preparedstatement它可以对它所代表的sql语句进行预编译,以减轻服务器压力

实例如下:

public user find(string username, string password) {
		
		connection conn = null;
		preparedstatement st = null;
		resultset rs = null;
		try{
			conn = jdbcutils.getconnection();
			
			string sql = "select * from users where username=? and password=?";
			st = conn.preparestatement(sql);   
			st.setstring(1, username);
			st.setstring(2, password);
			
			rs = st.executequery();  //
			if(rs.next()){
				user user = new user();
				user.setid(rs.getstring("id"));
				user.setusername(rs.getstring("username"));
				user.setpassword(rs.getstring("password"));
				user.setemail(rs.getstring("email"));
				user.setbirthday(rs.getdate("birthday"));
				return user;
			}
			return null;
		}catch (exception e) {
			throw new daoexception(e);
		}finally{
			jdbcutils.release(conn, st, rs);
		}
	}