Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent weak passwords #49

Open
Ryuno-Ki opened this issue Oct 2, 2024 · 1 comment
Open

Prevent weak passwords #49

Ryuno-Ki opened this issue Oct 2, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request question Further information is requested

Comments

@Ryuno-Ki
Copy link
Member

Ryuno-Ki commented Oct 2, 2024

Ich konnte mich mit einem schwachen Passwort wie 0123456890 registrieren, weil Laravel nur acht Zeichen verlangte.
Wir können das besser.

@stevenobird Kannst du bitte einmal anschauen, ob eine Regel anlegen der empfohlene Weg ist? laravel/ui sei ja nicht mehr zu benutzen, meintest du.

Es gibt Listen von den häufigsten Passwörtern.
Etwa

Wir könnten die Liste ein klein wenig eindampfen, indem wir die 8 Zeichen beibehalten (persönlich bin ich für doppelt so viele).
Insgesamt sind längere Passwörter schwieriger zu cracken als kürzere. Ich bin dafür, dass wir eine Liste davon als TXT bereithalten. Allerdings könnte GitHub da mittelfristig die Dateigröße bemängeln, so dass hier eine Liste in einem Bucket durchaus sinnvoll sein könnte. Wie das geschützt wird, weiß ich nicht. Ist Amazon.

@Ryuno-Ki Ryuno-Ki added enhancement New feature or request question Further information is requested labels Oct 2, 2024
@Ryuno-Ki Ryuno-Ki added this to the Authentifizierung milestone Oct 2, 2024
@stevenobird
Copy link
Contributor

stevenobird commented Oct 3, 2024

Neben den Standardregeln kann man natürlich auch - wie im Artikel beschrieben - eigene Validation Rules anlegen.

laravel/ui benutzt man glaube ich noch bei Laravel Breeze, oder Breeze hat es ersetzt - so ganz sicher bin ich mir nicht mehr. Prinzipiell ist die Validierung der selbe Mechanismus. Nur ist der Ort anders: Mit Breeze bzw. laravel/ui hat man dafür z.B. einen LoginController oder RegisterController, während Jetstream bzw. Fortify (worauf Jetstream gewissermaßen aufbaut) Actions nutzt.

Bei uns wird beim Anlegen von Benutzern in der CreateNewUser Action hier ein Validator gebaut, wobei das password Feld den Output von PasswordValidationRules bekommt.

Theoretisch könnte man an Password::default() noch die ->uncompromised() Methode chain-callen - das würde die API von haveibeenpwned in diesem Code aufrufen.

Neben Passwörtern können wir das ganze mit Passkeys auch noch auf eine eher neue Methode der Authentifizierung hebeln.
Ein Package vom sehr bekannten und beliebten Entwickler Spatie ist gerade noch in Entwicklung, es gibt aber auch schon einen Screencast von Laracasts, der eine eigene Implementierung demonstriert - wäre ja vielleicht auch noch eine Idee.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
Status: No status
Development

No branches or pull requests

2 participants