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
Sonderzeichen in Passwörtern
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.
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.
Sonderzeichen in Passwörtern
alles wird gut!
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:
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;
}