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

letzten 5/x Passwörter verbieten #236

Closed
dergel opened this issue Jan 2, 2019 · 11 comments
Closed

letzten 5/x Passwörter verbieten #236

dergel opened this issue Jan 2, 2019 · 11 comments
Assignees
Milestone

Comments

@dergel
Copy link
Member

dergel commented Jan 2, 2019

No description provided.

@dergel dergel added this to the Version 3.0 milestone Jan 2, 2019
@dergel dergel self-assigned this Jan 2, 2019
@alxndr-w
Copy link
Collaborator

alxndr-w commented Jan 3, 2019

Wäre auch für den Core sinnvoll, oder?

@dergel
Copy link
Member Author

dergel commented Jan 3, 2019

klar..

@dergel
Copy link
Member Author

dergel commented Sep 17, 2019

Verschlüsselten Passwörten können nun schonmal in einer Tabelle erfasst werden:

Passwort ändern Formular mit Passwort gehasht speichern.

objparams|form_class|hide-label

validate|ycom_auth_password|psw|Altes Passwort ist falsch
password|psw|psw|Altes Password|no_db

ycom_auth_password|password|#placeholder:Neues Passwort*|Neues Passwort*|{"length":{"min":8},"letter":{"min":1},"lowercase":{"min":1},"uppercase":{"min":1}}|Bitte die Passwortregeln beachten|1
password|password_2|#placeholder:Passwort wiederholen*|Passwort wiederholen*||no_db

validate|empty|password|Bitte gib ein Passwort ein.
validate|compare|password|password_2|!=|Bitte gib zweimal das gleiche Passwort ein

action|ycom_auth_db
action|db_query|insert into rex_ycom_user_psw set user_id = ? and psw = ?|id,password

Jetzt noch eine sinnvolle Validierung finden/umbauen.

@alxndr-w
Copy link
Collaborator

Eine eigene Validierung bauen, die nachsieht, ob für diesen Benutzer der Hash des neuen Passworts mit einem Hash des alten Passworts validiert.

Die hier gezeigte Lösung wäre jedoch nicht für den Core, da von yform abhängig.

@dergel
Copy link
Member Author

dergel commented Sep 17, 2019

Die hier gezeigte Lösung wäre jedoch nicht für den Core, da von yform abhängig.

genau .. Weiss noch nicht wie und ob man das vermischen könnte.

@dergel
Copy link
Member Author

dergel commented Nov 8, 2019

  • Maximale Gültigkeitsdauer muss festlegbar sein. Danach muss neues Passwort erzwungen werden, Default 90 Tage
  • Accounts müssen sperrbar sein, wenn Passwörter über einen bestimmten Zeitraum nicht geändert wurden
  • Erfassen der alten Passwörter (natürlich verschlüsselt)
  • Festlegung wieviele Passwörter zurück (oder welchen Zeitraum) man diese nicht verwenden darf
  • Zeitraum ab wann ein Passwort erzwungen wird (wenn z.B. 6 Monate das Passwort nicht geändert wurde)
  • Zeitraum bis wann man es geändert haben muss, bevor das Konto gesperrt wird.

Manches geht als Cronjob ..

@alxndr-w
Copy link
Collaborator

alxndr-w commented Nov 8, 2019

Diese Funktionalitäten würde ich nicht fest verbauen, sondern Opt-In, ggf. auch pro Nutzer. Alles andere erachte ich als schlechte UX bei nicht-sicherheitskritischen Anwendungen und Szenarien, in denen der Nutzer nur selten das Portal nutzt.

Stattdessen oder ergänzend könnte man auch einen Blick auf das angefangene Addon von Markus werfen, das man auch hier nutzen könnte:

https://redaxo.org/download/addons/2factor_auth/

@dergel
Copy link
Member Author

dergel commented Nov 11, 2019

daraus folgt im Moment:

  • Erfassen der Passwörter bei Änderung vom User
  • Validierungsklasse ergänzen, damit diese Passwörter gegengeprüft werden können
  • cronjob, welcher die Passworttabelle nach eigenen Kriterien bereinigt (Zeitraum, Anzahl Passwörter)
  • cronjob, welcher einem User auf "Neues Passwort setzen" festlegen kann, wenn ein Passwort nach einem bestimmten Zeitraum nicht geändert wurde
  • cronjob, welcher einen User auf "gesperrt" setzt, wenn keine Passwort nach einem bestimmten Zeitraum neu gesetzt wurde.

dergel added a commit that referenced this issue Nov 12, 2019
@dergel
Copy link
Member Author

dergel commented Nov 12, 2019

da dies sehr speziell und unterschiedlich genutzt werden kann und sicherlich würde, habe ich das nur in der Dokumentation ergänzt, so dass man es sich selbst nach eigenen Wünschen bauen kann. Ist mir Code und Co. drin.

@dergel dergel closed this as completed Nov 12, 2019
@alxndr-w
Copy link
Collaborator

Auch cool. Und so ausführlich. Beim Überfliegen super-verständlich. Danke!

@dergel
Copy link
Member Author

dergel commented Nov 12, 2019

Habs auch irgendwie fast eher für mich gemacht, weil ich es genau so brauche :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants