Problem mit Umlaute in Passwörter
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.
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.
Problem mit Umlaute in Passwörter
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
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
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.
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
Ich schmeiß' alles hin und...
... lasse es liegen
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:
Das ist meiner meinung nach wohl die einzige Stelle, an dem das Script die Umlaute verdreht. 
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);
}

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
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
Ich schmeiß' alles hin und...
... lasse es liegen
Also, in login.php wurde wegen ldap der folgende code
durch den ausgetauscht, mehr kann ich im login auch nichts erkennen
Code: Alles auswählen
if( md5($password) == $row['user_password'] && $row['user_active'] )
{

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);
}
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
Gibt es eine andere Stelle, an dem das PW noch geprüft wird?
Dank im Voraus.
fishbart
Lösung des Problems
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.
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);