mit preg_match erstellte whitelist geht nicht

Kipperlenny

Erfahrenes Mitglied
Moin

Ich habe mir vor kurzem das Buch "PHP-Sicherheit" gekauft und versuche nun gerade die Tipps darin zu verwerten.
Um ein Passwort mit einer Whitelist auf verbotene Zeichen zu prüfen steht da folgendes (leicht geändert) :

Code:
...
	$erlaubte = '/^[A-Za-z0-9\_\-]$/';
 	if(!preg_match($erlaubte, $passwort)) {
...

Damit erlaubt er aber nur noch Passwörter die "A" heißen, nichts anderes wie mir scheint....

Wo ist der Fehler?! Kann auch sein, dass ich von php.net nicht verstehe was mir preg_match zurück gibt...

lenny
 
Zuletzt bearbeitet:
Hallo,

probier es mal so:
PHP:
$erlaubte = '/^[A-Za-z0-9\_\-]+$/';
Ohne das + wird nur ein einziges Zeichen erkannt, durch das nachgestellte Plus werden beliebig viele (aber mindestens ein) Zeichen erkannt.

Grüße,
Matthias
 
Moin

Vielen Dank, das funktioniert und das + fehlt in dem Buch, dann werde ich denen gleich mal mailen, vielleicht kriege ich ja die neue Auflage dann umsonst *g*

lenny
 
Zurück