zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JSP网页防止sql注入攻击

2023-09-11 14:16:04 时间
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 prepareStatement方法是防止sql注入的简单有效手段  preparedStatement和statement的区别 1、preparedStateme

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);

 }



什么是SQL注入攻击? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。