Erzwingen der Anforderungen an die Kennwortstärke mit django.contrib.auth.views.password_change
Wir haben eine Django-Anwendung, die erfordert einen bestimmten Grad an Komplexität von Kennwörtern. Wir derzeit die Durchsetzung dieser mittels client-side JavaScript, das kann leicht besiegt werden, von jemandem, der eine entsprechend motiviert.
Ich kann nicht scheinen, um jede spezifische Informationen über das einrichten der server-Seite die Passwort-Stärke-Validierung mit der django /contrib eingebaut in Aussicht. Bevor ich das Rad neu erfinden möchte, gibt es eine richtige Weg, um dieser Anforderung?
InformationsquelleAutor der Frage jslatts | 2011-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ging ich auch mit einem benutzerdefinierten Formular. In
urls.py
geben Sie Ihre benutzerdefinierten form:Erben von
PasswordChangeForm
und umsetzen Validierung:InformationsquelleAutor der Antwort EMP
Django 1.9 bietet ein built-in Passwort Validierung zu helfen, verhindern, dass die Verwendung von schwachen Passwörtern durch die Nutzer. Es aktiviert durch modifing die
AUTH_PASSWORD_VALIDATORS
Einstellung in unserem Projekt. Standardmäßig Django kommt mit folgenden Prüfungen:UserAttributeSimilarityValidator
die überprüft, der die ähnlichkeit zwischendas Passwort und einem Satz von Parametern des Benutzers.
MinimumLengthValidator
die einfach prüft, ob das Kennworterfüllt eine minimale Länge. Diese Prüfung ist konfiguriert mit einem benutzerdefinierten
option: es benötigt nun die minimale Länge von neun Zeichen,
anstelle der Standard-acht.
CommonPasswordValidator
die prüft,ob das Kennwort tritt in eine Liste der häufigsten Passwörter. Durch
Standard, auch im Vergleich zu einer mitgelieferten Liste der 1000 häufigsten Passwörter.
NumericPasswordValidator
die prüft, ob das Passwort nichtausschließlich numerische.
Dieses Beispiel aktiviert alle vier enthaltenen Prüfungen:
InformationsquelleAutor der Antwort Cesar Canassa
Als einige entzog, um sich mit den eigenen Prüfungen, hier ist der Ansatz, den ich nehmen würde...
Erstellen Sie eine Prüfung:
Fügen Sie dann die Prüfung für das Formularfeld, die Sie suchen zu überprüfen:
InformationsquelleAutor der Antwort Troy Grosfield
Würd ich nur installieren django-Passwörter und lassen, handle es für Sie: https://github.com/dstufft/django-passwords
Danach können Sie einfach eine Unterklasse der Registrierungs-Formular und ersetzen Sie das Feld mit einem PasswordField.
InformationsquelleAutor der Antwort Alper
Ich denke, Sie sollten schreiben Sie einfach Ihre eigene validator ( oder verwenden Sie RegexValidator finden Sie unter: http://docs.djangoproject.com/en/dev/ref/validators/ ), wenn Sie Formulare verwenden, oder schreiben einige andere Skript-überprüfung für reguläre Ausdrücke. Dies sollte eine einfache Aufgabe sein. Auch ich glaube nicht, dass es irgendwelche eingebauten Mechanismus, einfach weil jeder Mensch versteht das Konzept der "starken Passwortes" ein wenig anders.
InformationsquelleAutor der Antwort freakish