Sicher mit Sessions umgehen

Wie Session Fixation verhindert werden kann, habe ich bereits gezeigt. In diesem Beitrag möchte ich mich um grundsätzliches im Umgang mit Sessions beschäftigen.

1. Session-IDs sind in der URL offengelegt

Die Session-ID sollte ein Geheimnis zwischen dem User und der Applikation sein. Diese in der URL mitzuschliefen ist sehr gefährlich. Der User muss den Link nur mit jemanden Teilen, schon int ein Dritter ein eingeloggter User. Zum Glück ist die Übergabe per Cookie der Standardfall in PHP, die Übergabe per URL erfordert einiges an Arbeit. Die PHP-Konfigruation use_trans_sid sollte den Wert 0 haben.

2. Sessions werden nicht richtig geschlossen

Weiterlesen


Session Fixation verstehen und beheben

Session Fixation ist auch Teil des “Broken Authentication & Session Management”-Punktes in den OWASP Top 10. Der Hintergrund ist eigentlich ganz einfach: Wenn wir die Session-ID eines eingeloggten Users kennen, können wir selbst eingelogged sein.

Wie funktioniert Session Fixation?

Die Frage die sich stellt ist natürlich: Woher kennen wir die Session-ID? Bei Session Fixation ist die Antwort ganz simpel: Wir setzen Sie selbst.

Weiterlesen


Authentifizierung die kein Vertrauen weckt

Authentifizierung richtig gemacht

Bildnachweis: (c) Annie Spratt

Das Thema Authentifizierung und Session-Management hat viele Aspekte, und es gibt viele potentielle Fehler, die gemacht werden können. Ich möchte mich hier deshalb zunächst nur auf die Authentifizierung beschränken.

1. Passworte sind nicht sicher gespeichert

Leider sehen wir das immer wieder: In einer Datenbanktabelle existiert ein Feld “password”, mit lesbarem Inhalt. Das darf natürlich gar nicht sein. Häufiger sehen wir Passworte, die mit md5 oder sha1 gehashed wurden. Das ist auch nicht sehr sicher. Denn oft reicht eine Google-Suche nach einem Hash, und am Ende findet man in irgendeiner Rainbowtable das gesuchte Passwort.

Weiterlesen