当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > jsp防注入的代码,如何防止SQL注入的方法和预编译的PreparedStatement的代码例子

Java Web开发
孙鑫老师原创:XML Schema初窥(二)
Java开源技术:J2EE应用服务器
用java开发Email工具之发送邮件
Java数据库程序中的存储过程设计
JAVA IO 设计模式彻底分析
Java Web开发:Java模式设计之单例模式(一)
Java Web开发:Java模式设计之单例模式(二)
Java Web开发:基于JVM的语言正在开始流行
Java Web开发:Java语言的十大问题,你能解决吗?
Java Web开发:Struts2 中.action和.do的奥秘
Java web:孙鑫老师谈Servlet的线程模型
java Web开发:孙鑫老师谈Session和Cookie的深入研究
Java Web开发:在线人数统计程序
Java Web开发:小编概述JSP技术
Java Web开发:FreeMarker模板使用方法讲解
Java Web开发:Tomcat和IIS的配合
Java Web开发:小编谈JFreeChart统计柱形图表事例
Java Web开发:程序员之家七月份Java Web开发总结
Java Web开发:Tomcat和Apache的配合
Java Web开发:iBATIS延迟加载的那点事

Java Web开发 中的 jsp防注入的代码,如何防止SQL注入的方法和预编译的PreparedStatement的代码例子


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 651 ::
收藏到网摘: n/a

防注入的最有效,最简单的方法是
使用预编译的PreparedStatement
而不是使用拼凑SQL的 Statement

比如判断用户名和密码的例子,应该用
 

 
/** * 一段防止SQL注入的使用预编译的PreparedStatement的代码例子 * * @param username 用户名 * @param password 密码 * @return 成功返回true,否则返回false */
public static boolean checkLogin(String username, String password) { Connection con = null;// 数据库连接部分我就不写了 PreparedStatement stat = null; ResultSet rs = null; try { // 预编译语句 stat = con.prepareStatement("select count(*) from t_user where username=? and password=?"); // 设置2个参数 stat.setString(1, username); stat.setString(2, password); // 执行 rs = stat.executeQuery(); if (rs.next()) { return rs.getInt(1) > 0; } return false; } catch (Exception ex) { ex.printStackTrace(); return false; } finally { // 这里关闭资源的方法我也不写了 }
}