发新话题

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

防注入的最有效,最简单的方法是
使用预编译的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 {
      // 这里关闭资源的方法我也不写了
    }
  }
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
菜鸟没看懂,怎么防止了注入攻击?楼主能否说明一下。
以前看到的防注入,要判断传入的参数中是否有引号之类的特殊符号。
编辑 回复 快速回复 TOP
发新话题