Sonderzeichen in Passwörtern

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
culicidae
Mitglied
Beiträge: 43
Registriert: 05.11.2006 14:26
Wohnort: Kassel
Kontaktdaten:

Sonderzeichen in Passwörtern

Beitrag von culicidae »

Hallo Forum,

um es meinen Benutzern einfacher zu machen benutze ich für meine Seite und mein Forum dieselben Logindaten, indem ich das eingegebene Passwort mit dem über phpbb_check_hash() mit dem Hash in der DB abgleiche, das funktioniert auch für die meisten Benutzer, aber leider nicht für die, die Sonderzeichen im PW haben.

Meine Frage ist jetzt, was stellt das Board noch mit den Sonderzeichen an, bevor es die an phpbb_check_hash() übergibt?

Beispielpasswort: "\$" (inklusive Anführungszeichen)
php macht ja aus den Anführungszeichen ein \" aber auch wenn ich den Backslash wieder entferne bringt das nichts.

Hat einer von euch eine Idee?

Vielen Dank schon mal!

Gruß
culicidae
alles wird gut!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hallo,

das Passtwort wird durch die Funktion

request_var()

mit dem Parameter Multibyte true geschleust.

In der Funktion request_var() wird das Passwort dann der Funktion

set_var()

wiederum mit dem Parameter Mutlibyte true übergeben.

Da es sich bei dem Passwort um einen String handelt, werden folgende Code Zeilen in der includes/functions.php durchlaufen:


Code: Alles auswählen

	if ($type == 'string')
	{
		$result = trim(htmlspecialchars(str_replace(array("\r\n", "\r"), array("\n", "\n"), $result), ENT_COMPAT, 'UTF-8'));

		if (!empty($result))
		{
			// Make sure multibyte characters are wellformed
			if ($multibyte)
			{
				if (!preg_match('/^./u', $result))
				{
					$result = '';
				}
			}
			else
			{
				// no multibyte, allow only ASCII (0-127)
				$result = preg_replace('/[\x80-\xFF]/', '?', $result);
			}
		}

		$result = (STRIP) ? stripslashes($result) : $result;
	}
Benutzeravatar
culicidae
Mitglied
Beiträge: 43
Registriert: 05.11.2006 14:26
Wohnort: Kassel
Kontaktdaten:

Beitrag von culicidae »

Hi Dr. Death,

danke, das war genau, was ich wissen wollte!

Gruß
culicidae
alles wird gut!
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“