shuber      2005/04/28 18:10:18 CEST

  Modified files:        (Branch: JAHIA-4-0-BRANCH)
    src/java/org/jahia/services/usermanager 
                                            JahiaSiteUserManagerDBService.java 
                                            JahiaUserManagerDBProvider.java 
  Log:
  Bugfix : fixing SQL injection vulnerability in user login form.
  
  Revision   Changes    Path
  1.13.2.3   +9 -9      
jahia/src/java/org/jahia/services/usermanager/JahiaSiteUserManagerDBService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/usermanager/JahiaSiteUserManagerDBService.java.diff?r1=1.13.2.2&r2=1.13.2.3&f=h
  1.20.4.10  +18 -12    
jahia/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java.diff?r1=1.20.4.9&r2=1.20.4.10&f=h
  
  
  
  Index: JahiaSiteUserManagerDBService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/usermanager/Attic/JahiaSiteUserManagerDBService.java,v
  retrieving revision 1.13.2.2
  retrieving revision 1.13.2.3
  diff -u -r1.13.2.2 -r1.13.2.3
  --- JahiaSiteUserManagerDBService.java        18 Aug 2004 14:51:48 -0000      
1.13.2.2
  +++ JahiaSiteUserManagerDBService.java        28 Apr 2005 16:10:17 -0000      
1.13.2.3
  @@ -25,6 +25,7 @@
   import java.sql.SQLException;
   import java.sql.Statement;
   import java.util.*;
  +import java.sql.PreparedStatement;
   
   
   /**
  @@ -341,7 +342,7 @@
   
           JahiaUser user = null;
           Connection dbConn = null;
  -        Statement statement = null;
  +        PreparedStatement statement = null;
   
           user = (JahiaUser) siteUserCache.get(buildCacheKey(siteID, 
username));
           if (user != null) {
  @@ -352,16 +353,15 @@
   
               SiteUserBean suBean = null;
               dbConn = 
org.jahia.services.database.ConnectionDispenser.getConnection();
  -            statement = dbConn.createStatement();
  +            StringBuffer query = new StringBuffer(
  +                    "select * from jahia_sites_users where 
siteid_sites_users=?");
  +            query.append(" and username_sites_users=?");
  +            statement = dbConn.prepareStatement(query.toString());
               if (statement != null) {
   
  -                StringBuffer query = new StringBuffer(
  -                        "select * from jahia_sites_users where 
siteid_sites_users=");
  -                query.append(siteID);
  -                query.append(" and username_sites_users='");
  -                query.append(username);
  -                query.append("'");
  -                ResultSet rs = statement.executeQuery(query.toString());
  +                statement.setInt(1, siteID);
  +                statement.setString(2, username);
  +                ResultSet rs = statement.executeQuery();
                   if (rs != null) {
                       while (rs.next()) {
                           suBean = getSiteUserBeanFromResultSet(rs);
  
  
  
  Index: JahiaUserManagerDBProvider.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/usermanager/Attic/JahiaUserManagerDBProvider.java,v
  retrieving revision 1.20.4.9
  retrieving revision 1.20.4.10
  diff -u -r1.20.4.9 -r1.20.4.10
  --- JahiaUserManagerDBProvider.java   1 Apr 2005 08:14:58 -0000       1.20.4.9
  +++ JahiaUserManagerDBProvider.java   28 Apr 2005 16:10:17 -0000      
1.20.4.10
  @@ -667,14 +667,19 @@
   
           boolean result = true;
           String userIDStr = Integer.toString (id);
  -        Statement statement = null;
  +        PreparedStatement statement = null;
   
           try {
  -            statement = dbConn.createStatement ();
  +            String query = "INSERT INTO jahia_users (id_jahia_users, 
name_jahia_users, password_jahia_users, key_jahia_users, siteid_jahia_users) 
VALUES (?,?,?,?,?)";
   
  -            String query = "INSERT INTO jahia_users (id_jahia_users, 
name_jahia_users, password_jahia_users, key_jahia_users, siteid_jahia_users) 
VALUES (" +
  -                    userIDStr + ",'" + username + "','" + password + "','" + 
userKey + "'," + siteID + ")";
  -            statement.executeUpdate (query);
  +            statement = dbConn.prepareStatement (query);
  +
  +            statement.setInt(1, id);
  +            statement.setString(2, username);
  +            statement.setString(3, password);
  +            statement.setString(4, userKey);
  +            statement.setInt(5, siteID);
  +            statement.executeUpdate ();
   
               // Add the user's attributes
               if (properties != null) {
  @@ -722,14 +727,15 @@
           UserProperties properties = new UserProperties ();
   
           // execute the SELECT query
  -        Statement statement = null;
  +        PreparedStatement statement = null;
           try {
  -            statement = dbConn.createStatement ();
  +            String query = "SELECT id_jahia_users, password_jahia_users, 
key_jahia_users FROM jahia_users WHERE name_jahia_users=? and 
siteid_jahia_users=?";
  +            statement = dbConn.prepareStatement (query);
               if (statement != null) {
  -                String query = "SELECT id_jahia_users, password_jahia_users, 
key_jahia_users FROM jahia_users WHERE name_jahia_users='" +
  -                        name + "' and siteid_jahia_users=" + siteID;
  +                statement.setString(1, name);
  +                statement.setInt(2, siteID);
   
  -                ResultSet rs = statement.executeQuery (query);
  +                ResultSet rs = statement.executeQuery ();
   
                   if (rs != null) {
                       if (rs.next ()) {
  @@ -1096,8 +1102,8 @@
                           "] at position " + i);
               }
           }
  -     /* end EP mods */
  -     return (!badCharFound);
  +    /* end EP mods */
  +    return (!badCharFound);
       }
   
       
//-------------------------------------------------------------------------
  

Reply via email to