# Problem mit Benutzerverwaltung



## GAST (27. Nov 2006)

hi,

ich versuche z.Z mit folgendem code dem benutzer einer seite die möglichkeit zu geben sein passwort zu ändern:


```
Class.forName(jdbc_driver);
	    con = DriverManager.getConnection(jdbc_url, "root", "");
	    stmt = con.createStatement();
	    
	    String user = req.getParameter("user");
	    String passwort_alt = req.getParameter("passwort_alt");
	    String passwort_neu = req.getParameter("passwort_neu");
	    String passwort_neu2 = req.getParameter("passwort_neu2");
	    String passwortDB = "";
	    String strQuery = "Select * from usertabelle where Name='" + user + "'";
	    int cnt = 0;
	    ResultSet rs;	    
	    rs = stmt.executeQuery(strQuery);
	    while(rs.next()){
		passwortDB = rs.getString("passwort");
	    }
	    if(passwort_alt.equals(passwortDB)){
		if(passwort_neu.equals(passwort_neu2)){
		    strQuery = "Update usertabelle set Passwort='" + passwort_neu + "' where Name='" + user + "'";
		    cnt = stmt.executeUpdate(strQuery);
		}
	    }
	    if(cnt > 0 ){
		req.setAttribute("bestaetigung", "Kennwort wurde erfolgreich aktualisiert");
		config.getServletContext().getRequestDispatcher(
		"/todo.jsp").forward(req, resp);
	    }else{
		req.setAttribute("fehlertext", "Kennwort konnte nicht aktualisiert werden");
		config.getServletContext().getRequestDispatcher(
		"/todo.jsp").forward(req, resp);
	    }
```

die jsp dazu besteht nur aus 3 input feldern um altes und neues passwort einzugeben
wenn ich dat teil nun ausführen möchte, öffnet sich n kleines fenster in dem ich gefragt werde für welchen benutzer ich denn nun das passwort ändern möchte. in dem fenster sind dann die bisher erstellten benutzer aufgelistet.
(naja is blöd zu erklären aber ich hab keine ahnung wie man hier bilder hochlädt sonst könnt ich´s zeigen)
wenn ich dann einen davon auswähle passiert erstmal garnichts ausser das meine session beendet wird.

mein problem ist jetzt das ich keine ahnung wo das blöde fenster herkommt denn explizit aufrufen tu ich es ja nicht.

ich denk mir mal das dass vom tomcat(Version 5.5) kommt aber sicher bin ich mir da nicht deshalb wärs super wenn jemand vllt ne vermutung hat wo das fenster herkommt (vllt tomcat benutzerverwaltung?) oder das problem kennt.

mfg

rod


----------



## SlaterB (27. Nov 2006)

kommt das bei dir immer, 
auch bei einem JSP, das nur 'Hello World' ausgibt?
oder erst bei einem JSP das ein Formular enthält?
wenn nicht bei jedem Formular, dann bei welchem? 
vielleicht wenn eines der Felder 'email' oder 'login' oder 'password' oder 'user' heißt?

es macht doch keinen Sinn, fertigen Code vor sich zu haben und sich zu wundern was warum nicht geht,
baue alles Schritt für Schritt auf, und erkenne so, bei welcher neuen Zeile es zu dem dir unbekannten Verhalten kommt

wahrscheinlich erkennt ja der Browser, dass es sich irgendwie um Login handelt,
die zugehörigen Komfort-Funktionen wie 'Passwort merken' kannst du dann in deinem Code wohl nicht ausschalten,
es sei denn du entfernst die Hinweise, die den Browser dazu bringen, das anzunehmen,

also z.B. die Namen der Felder des Formulars,

------

wenns es aber allein um den Typ der Felder geht (password, damit Sternchen angezeigt werden), 
dann wirds vielleicht schwer das zu umgehen 

vielleicht weiß jemand anders mehr?,

kann man aber bestimmt im Browser in den Einstellungen ausschalten, falls dir das noch nicht in den Sinn kam


----------



## GAST (27. Nov 2006)

ok ok kommando zurück! war mein fehler ich hatte die funktion bisher nur im firefox getestet mit dem IE tritt 
der fehler nicht auf (ich benutz den so selten das ich garnicht auf die idee gekommen bin mal n andern browser zu verwenden). trotzdem danke für die schnelle antwort die hat mich zumindest auf die richrige spur gebracht.

P.S. den code hatte ich nur gepostet um klar zu machen das ich das fenster nicht aufrufe

mfg


----------



## Gast (29. Nov 2006)

Den Code wirst Du aber sicher nicht in einer Produktivumgebung einsetzen!

Ich hoffe, Du hast schon mal was von SQLInjection gehört...alle übergebenen Parameter sollten zuerst auf Gültigkeit überprüft werden.


----------

