Problem mit Umlaute in Passwörter

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
fishbart
Mitglied
Beiträge: 5
Registriert: 26.02.2007 14:27

Problem mit Umlaute in Passwörter

Beitrag von fishbart »

Hallo Leute,

ich habe folgendes Problem, in mein phpBB kann ich mit passwörter ohne Umlaute problemlos anmelden. Diejenige nutzer, die Umlaute in Passwörter (also ÄÖÜß) verwenden, können sich nicht anmelden. Liegt es eventuell daran, dass im Script umlaute vornerein abgelehnt wird? Wenn ja, kann man das umstellen.

In dem Forum (V. 2.0.22) ist noch ein Ldap-Plugin drin, wenn ein neuer nutzer sich anmeldet, wird dieser automatisch registriert.

Habe diesen Forum schon nach vorhandenen Lösung durchforstet, ebenso in der Dokumentation bzw. Knowledge Base, werde trotzdem irgendwie nicht schlau daraus.

Wer weiss Rat??

Gruß, fishbart
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Umlaute werden im Script nicht abgelehnt. Ich wüsste jedenfalls nicht wo.

Der Verschlüsselung ist es egal, ob die Passwort Umlaute dirn haben, oder nicht. Vllt. haut da Dein Script dazwischen und ändert die Umlaute (z.B. in HTML Code) um.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
fishbart
Mitglied
Beiträge: 5
Registriert: 26.02.2007 14:27

Beitrag von fishbart »

Also, ich hab mir nochmal das login.php angeschaut, durch den Mod LDAP Auth wurden einige Zeilen getauscht, aber so wie ich das betrachte, scheint es wohl in ordnung zu sein, hier ein auszug:

Code: Alles auswählen

 
 if(( (($row['user_type'] == User_Type_Both || $row['user_type'] == User_Type_LDAP) && ($ldap_auth_result == LDAP_AUTH_OK || ($ldap_auth_result == LDAP_INVALID_USERNAME && md5($password) == $row['user_password'])))
               || (md5($password) == $row['user_password'] && (($board_config['auth_mode'] == 'phpbb' && $row['user_type'] == User_Type_Both) || $row['user_type'] == User_Type_phpBB))
               ) && $row['user_active'] )
            {
               if ($board_config['auth_mode'] == 'ldap' && $ldap_auth_result == LDAP_AUTH_OK && $board_config['ldap_group_sync'] == 1) {
                  ldapUpdateGroups($username);
               }
Das ist meiner meinung nach wohl die einzige Stelle, an dem das Script die Umlaute verdreht. :(
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Also ich sehe da nichts, was da in irgendeiner Art die Passwörter verändern sollte.
Daher wird es wohl eher mit der usercp_register.php zusammenhängen, denn da wird das erste mal das PW des Users in die DB eingetragen.

Ansonsten wird es nur ausgelesen oder mit MD5("eingegebenens PW") verglichen.

Es sei denn die Variable $password wird duch die login.php schon vorher manipuliert
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
fishbart
Mitglied
Beiträge: 5
Registriert: 26.02.2007 14:27

Beitrag von fishbart »

Also, in login.php wurde wegen ldap der folgende code

Code: Alles auswählen

if( md5($password) == $row['user_password'] && $row['user_active'] )         
            {
durch den ausgetauscht, mehr kann ich im login auch nichts erkennen :(

Code: Alles auswählen


if(( (($row['user_type'] == User_Type_Both || $row['user_type'] == User_Type_LDAP) && ($ldap_auth_result == LDAP_AUTH_OK || ($ldap_auth_result == LDAP_INVALID_USERNAME && md5($password) == $row['user_password'])))
               || (md5($password) == $row['user_password'] && (($board_config['auth_mode'] == 'phpbb' && $row['user_type'] == User_Type_Both) || $row['user_type'] == User_Type_phpBB))
               ) && $row['user_active'] )
            {
               if ($board_config['auth_mode'] == 'ldap' && $ldap_auth_result == LDAP_AUTH_OK && $board_config['ldap_group_sync'] == 1) {
                  ldapUpdateGroups($username);
               }
fishbart
Mitglied
Beiträge: 5
Registriert: 26.02.2007 14:27

Beitrag von fishbart »

Noch eine Frage dazu, wenn die Passwortabfrage über die Lokale Datenbank läuft, funktioniert das Login einwandfrei, durch LDAP wird das PW irgendwie nicht angenommen. Leider kann ich im Script nicht erkennen, an welcher stelle das PW geprüft wird, seitens des Ldap-Plugin ist es nicht zu finden, da dort das Passwortvariable in der Übergabe völlig in ordnung ist.
Gibt es eine andere Stelle, an dem das PW noch geprüft wird?

Dank im Voraus.

fishbart
fishbart
Mitglied
Beiträge: 5
Registriert: 26.02.2007 14:27

Lösung des Problems

Beitrag von fishbart »

Hallo Leute,

da ich das Problem vor einiger Zeit gefunden und Behoben habe, will ich das
nicht vorenthalten.

Ich musste die Variable des Passwortes in einem utf-8 Format encodieren, dann klappt es auch. Befehl in functions_ldap.php direkt nach der Parameterübergabe einfügen.

Code: Alles auswählen

$variable = utf8_encode($variable); 
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“