From: Sven Schöling Date: Mon, 2 Jul 2012 13:58:12 +0000 (+0200) Subject: Keine Passwörter mehr in Sessions speichern. X-Git-Tag: release-3.0.0beta1~316 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/eb8ba4764dff48ed8e67a00c48d02c9e7c6e5de5?ds=sidebyside;hp=eb8ba4764dff48ed8e67a00c48d02c9e7c6e5de5 Keine Passwörter mehr in Sessions speichern. Der vorherige Mechanismus hat Passwörter in der Session hinterlegt, um bei jedem Request überprüfen zu können, ob die Zugriffsrechte immernoch bestehen. Gedacht war das vor allem für LDAP Authetifizierung, wo der Admin den Zugang eines Benutzers speichern konnte und das System das sonst nicht mitbekommt. Ein großes Problem was daraus entsteht ist, dass das Passwort auch akzeptiert wird, wenn die gehashte Version übergeben wird, weil zur Überprüfungszeit nicht mehr festgestellt werden kann, ob das gehashte Passwort aus der Session kommt oder vom User. Diese Änderung sorgt dafür, dass Passwörter weder im Klartext, noch crypted in der Session gespeichert werden, sondern der Authetifizierungsstatus. Eine Session bleibt jetzt eutentifiziert, auch wenn zwischendurch das Passwort geändert wird. Lokal wird das später abgefangen werden, dass Sessions invalidiert werden, wenn der Admin das Passwort ändert, im LDAP ist es garnicht mehr der Fall. Auf der positiven Seite reduziert das den load auf dem LDAP Server, weil nicht mehr für jeden Request ein Bind passieren muss. Da die Passwörter nicht mehr verglichen werden müssen, werden gehashte Passwörter jetzt nicht mehr akzeptiert. Jedes Passwort wird vor dem Vergleichen unkonditional gehasht. Die Backend Routinen erkennen jetzt wenn garkein Passwort übergeben wurde, und triggern dafür den 5s Penalty nicht. Das macht das Aufrufen der Administration das erste Mal wie erwartet schneller. ---