Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
Der_Schakal

minmum Passwortlänge für User ?

Recommended Posts

Hi Leute, ich weiss ich überschütte das Forum mit Fragen *g*

Hier noch eine, kann ich bei der registrierung erzwingen das ein Kennwort von dem User der sich registrieren will, mindestens 5 Zeichen (als beispiel) und 2 zahlen enthält ?

Wenn ja wie ?

Der Schakal

Share this post


Link to post

Die minimale Länge zu erhöhen ist relaltiv einfach. :)

Datei Register.php

  if (strlen($len_p) < 3)

  {

  $this->show_reg_form('err_no_password');

  return;

  }

Bei der anderen Sache muß man wohl ein regulären Ausdruck drüber laufen lassen. Ist auch nicht sonderlich wild, aber dafür hab ich heute keinen Kopf mehr. ;)

Share this post


Link to post

Ich als absoluter PHP Neuling nerv hier wieder richtig glaub ich :D

Noch eine andere Sache, ich würde gerne auch einstellen das das kennwort UNGLEICH des Benutzernamen ist...

Wenns gehen würde und nicht zuviel umstände macht....

Thnx

Der Schakal

Share this post


Link to post

hallo.

nehmen wir an ich erhöhe die passwortlänge von drei auf fünf. hat das dann in irgendeiner weise auswirkungen auf die bestehenden user die vielleicht schon ein passwort mit drei zeichen länge haben?

Share this post


Link to post

Es hat keine Auswirkungen, da die Änderung nur bei Neuanmeldungen greift.

Ggf. muß man für die Routine für Passwortänderung noch etwas anpassen, aber auch da schau ich dann am morgigen Tag mal, nachdem ich die letzte Klausur geschrieben habe. :D

Für das andere, damit Passwort ungleich Benutzername, unterhalb der Stelle, die ich vorhin angegeben habe, folgendes hinzufügen:

  if ($in_username == $in_password)
 {
 $this->show_reg_form('err_no_password');
 return;
 }

Share this post


Link to post

Boah das ging schnell

um so mehr ich mir den PHP code angucke um so mehr fällt mir aus der c++ zeit wieder ein *g*

noch ne frage:

Wo passe ich den Text an (steht ja noch drin das mindestens 3 zeichen nötig sind)

sind jetzt aber mehr.

Wo steht sowas ?

Der Schakal

Share this post


Link to post

Okay, hier noch ein einfacher regulärer Ausdruck, um mindestens zwei Zaheln im Passwort zu erzwingen.

Kann auch unterhalb der oben angegebene Stelle eingefügt werden.

  if (preg_match("#\d+\D+\d+#", $in_password))
 {
 $this->show_reg_form('err_no_password');
 return;
 }
Mit diesem Ausdruck muß mindestens eine Nichtzahl zwischen den beiden Zaheln stehen. Beispiel: mein22passwort => ungültiges Passwort mein22pass1wort => gültiges Passwort Kannst natürlich auch noch die Fehlermeldung anpassen. Dazu oben aus err_no_password zum Beispiel err_no_valid_passwort machen. Anschließend in der lang_register.php noch folgendes hinzufügen:
'err_no_valid_password'  => "Was immer du dem User mitteilen willst",
oder bei anderer Arrayschreibweise:
$lang['err_no_valid_password']  = "Was immer du dem User mitteilen willst";

Bezüglich der Passwortänderungsroutine muß ich nochmal genau schauen.

Share this post


Link to post

Hi Stefan

dank dir für den Code..

Wie muss der aussehen wenns egal ist ob zei zahlen aufeinander folgen ?

Ich möchte nur das zwei Zahlen vorhanden sein müssen....

Edited by Der_Schakal

Share this post


Link to post

Du kannst Fragen stellen. :P

Eine einfache Lösung:

preg_match_all("#(\d{1})#", $in_password, $match);

if (count($match[0]) < 2)
{
 $this->show_reg_form('err_no_password');
 return;
}

Sollte funktionieren. :)

Share this post


Link to post

Hallo Der_Schakal :)

ich freue mich, daß es Funktioniert, noch mehr würde ich mich in Zukunft darüber freuen, wenn Du den erledigt / nicht erledigt Button benutzen würdest, und das Thema eben für erledigt markierst, damit man weiß das eben die Anfrage in dem Thema erledigt ist :) Ich habe es in diesem Fall dann nochmal für Dich erledigt !

Danke für die Kooperation :D

Share this post


Link to post

Hallo Zusammen!

Das hier beschriebene sicher machen des Passwortes gilt doch nur für das Passwort welches man direkt bei der Registrierung nutzt, oder?

Ich würde das ganze gerne auch dann abfragen lassen, wenn jemand sein PW ändert. Also Mindestlänge, ungleich Benutzername und mind. eine Zahl im Passwort.

Vielen Dank und Grüße,

Dirk

Share this post


Link to post

Das hier beschriebene sicher machen des Passwortes gilt doch nur für das Passwort welches man direkt bei der Registrierung nutzt, oder?

Ja. :)

Ich würde das ganze gerne auch dann abfragen lassen, wenn jemand sein PW ändert. Also Mindestlänge, ungleich Benutzername und mind. eine Zahl im Passwort.

Kein Problem. ;)

Datei UserCP.php

Suchen:

 	 if ($new_pass != $chk_pass)
 {
   $std->Error( array( 'LEVEL' => 1, 'MSG' => 'pass_no_match' ) );
 }
 
 //--------------------------------------------
 
 if (md5($cur_pass) != $this->member['password'])
 {
   $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass' ) );
 }
 
 //--------------------------------------------
Darunter einfügen:
  if (strlen($new_pass) < 3)
 {
   $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) );
    }

 if (strtolower($ibforums->member['name']) == strtolower($new_pass))
 {
   $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) );
 }
 
 preg_match_all("#(\d{1})#", $new_pass, $match);
 
 if (count($match[0]) < 1)
 {
   $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) );
 }  
Datei lang_error.php (von jedem Sprachpaket) Hinzufügen:
$lang['wrong_pass_format'] = "Das neue Passwort entspricht leider nicht den gewünschten Sicherheitsbestimmungen. Das Passwort muß mindestens 4 Zeichen lang sein, eine Zahl enthalten und darf nicht der Benutzername sein.";
Bzw. bei anderer Arrayschreibweise:
'wrong_pass_format' => "Das neue Passwort entspricht leider nicht den gewünschten Sicherheitsbestimmungen. Das Passwort muß mindestens 4 Zeichen lang sein, eine Zahl enthalten und darf nicht der Benutzername sein.",

Sollte soweit funktionieren. :)

Share this post


Link to post

Wunderbar, vielen Dank Stefan!

Hast du auch noch einen Tipp, wie man bestimmte Benutzergruppen dazu überreden kann oder besser dazu "zwingen" kann sich ein neues Passwort zu suchen was den neuen Sicherheitslinien entspricht?

Grüße,

Dirk

Share this post


Link to post

Unschön, aber machbar: setzt über eine SQL Abfrage (oder manuell im ACP) für jeden Benutzer ein zufälliges Passwort welches dieser nicht kennt.

Jetzt muss dieser sein Passwort anfordern und wenn er mit diesem nicht zufrieden ist (ja, es besteht - rein rechnerisch - die Möglichkeit, dass das neu erzeugte Passwort mit dem Benutzernamen übereinstimmt) muss er dann sein Passwort ändern.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×