Vinzenz Mai: Passwort Prüffunktion

Beitrag lesen

Hallo Matze,

Sie soll überprüfen, ob ein übergebenes Passwort sinnvoll ist oder nur aus einer Zeichenfolge besteht.

Dein Code sieht nach PHP aus, wirf mal einen kleinen Blick auf die inzwischen in PECL verschobenen Crack-Funktionen.

Dabei hab ich zu meinem erstaunen fest gestellt, dass der Operator ++ auch mit Buchstaben funktioniert. Das war mir neu.

aber dokumentiert.

Ansonten würde ich den Code gern mal von euch bewerten lassen. Ist er fehlerfrei?

Nein, auch konsequent durchgehaltene Rechtschreibfehler wie lenght statt length sind ein Fehler :-)

Verbesserungswürdig?

Definitiv, weil ...

Überhaupt sinnvoll?

Nein. Es fehlt viel zu viel.

Und sollte ich bei Passwortfeldern nur Zahlen und Buchstaben zulassen

Nein.

sind Sonderzeichen 'zulässig'? Mich stören sie eigentlich nicht.

Ja, sie sind sehr wünschenswert.

Passwort Prüffunktion

// Hier fehlt einfach alles:
// Welche Überprüfungen werden vorgenommen, Beispiele
// a) Mindestlänge,
// b) erlaubter Zeichenvorrat,
// c) vorgeschriebene Zeichengruppen, die vorkommen müssen,
// d) Hält das Passwort einem Wörterbuchangriff stand,

// Bei einer solchen Überprüfung geht es normalerweise um die Angriffsfläche,
// die ein Passwort gegen Brute-Force- und Wörterbuchangriff bietet.
// Die Regeln sind dem Angreifer bekannt, Du musst sie ja schließlich selbst
// dem Anwender vorgeben.

// Je größer die Länge des Passwortes, um so stärker ist es
// Je größer der Zeichenvorrat der erlaubten Zeichen, um so stärker ist es
// Nur wenn Zeichen aus verschiedenen Gruppen auftreten, ist es wirklich stark
// Wenn Gruppen mehrfach vorkommen, dann ist das besser
// Das Passwort sollte nicht in einem Wörterbuch gefunden werden

// Daher sollte die Funktion auch keinen Wahrheitswert zurückliefern, sondern
// einen Stärkewert, so wie es auch die entsprechende Crack-Funktion macht ...

// Das gehört alles in die Dokumentation, den Kommentar zur Funktion, siehe
// dazu auch [pref:t=166913;m=1088534] und
// folgender von dedlfix verlinkter [link:http://shiflett.org/blog/2007/dec/php-advent-calendar-day-2@title=Blogartikel] zur Dokumentation von Code.

function good_pwd($pwd){

// [...]

  

> [1] Wie krieg ich hier eigentlich Tabs in den Text gesetzt?  
  
Wandle sie mit der entsprechenden Funktion Deines Editors in Leerzeichen um.  
  
Bis auf die Wörterbuchüberprüfung könntest Du - wie von Alex vorgeschlagen - die Überprüfung ergänzend bereits auf dem Client vornehmen, für den Wörterbuchangriff könntest Du, falls möglich, auf Ajax zurückgreifen. Wie üblich ersetzt das nicht Deine serverseitige Überprüfung :-)  
  
  
Freundliche Grüße  
  
Vinzenz