Seite 1 von 1

Client-Side Sessions

Verfasst: Montag 17. Dezember 2007, 10:13
von mitsuhiko
Rails 2 bringt ja eine Neuerung, die ich gleich für Werkzeug übernehmen musste: Client-seitige Sessions. Die Idee ist, dass die Session Daten im Cookie selber stecken und nicht am Server in einer Datei/Datenbank.

Vorteile: schnell, keine Session ID zum klauen, man muss Sessions nicht nach einiger Zeit wieder leeren
Nachteile: man kann sehen was im Cookie steckt, die Größe ist begrenzt

Was haltet ihr davon? Wenn man bedenkt, dass man eh immer nur die user id in der Session speichert denke ich, dass das eine hervoragende Alternative zu normalen Sessions ist.

Hier die Werkzeug Implementierung davon.

Besonders bei der Werkzeug Implementierung würde mich interessieren, ob jemand Bedenken bei der Sicherheit hat. Ich bin nicht sonderlich gut in Kryptographie, also könnte ich irgendwas übersehen haben.

Implementiert ist es so, dass es einen Salt und einen Secret Key gibt. Salt + Secret Key + gepickelter Wert aufsummiert ergibt dann die Checksumme. Vor dem unpicklen wird die Checksumme am Server neu berechnet und dann verglichen.

Ein Beispielcookie sieht so aus:

Code: Alles auswählen

session="b226e?f1b6e8d104811ca309795909e401e95c5844bd8c?
_expires=J_%BB%8DG.&user_id=L1L%0A.&permanent_login=I00%0A."