Ab und zu schaue ich auf Webseiten in die Cookies und den Local- und Session-Storage. Rein aus Neugier. Am gestrigen Tag habe ich bei der bekannten IT News Seite www.winfuture.de in die Cookies gesehen. Auch diese News Seite speichert Inhalte in Cookies ab. Soweit ist hier alles ganz normal. Nicht normal sind ein paar Cookie Einträge, die man im angemeldeten Zustand besitzt.

Login Daten speichert man nicht in Cookies!

Etwas stutzig wurde ich bei den drei Cookies namens wfv4login, wfv4pass und wfv4id. In diesen Cookies stehen nämlich die Login Daten von meinem persönlichen Account. Ich wiederhole: Es stehen die User ID, Username und ein gehashtes Passwort in den Cookies.

Auf Nachfrage über Twitter erhalte ich eine Antwort vom Winfuture Team, die lautet:

Was ist daran so schlimm?

Alles! Laut Winfuture werden die Daten zur Identifizierung gespeichert. Auch wenn das Passwort verschlüsselt ist: Durch Übernahme der Cookies kann der Winfuture Login übernommen werden.

Login erfolgreich übernommen

In meinem Test habe ich die Cookies einmal von Browser A nach Browser B kopiert. Das Resultat: Ich bin jetzt in beiden Browsern eingeloggt. Übernommen habe ich lediglich die drei Cookies wfv4login, wfv4pass und wfv4id. (Na gut, zwei Cookies reichen auch schon. Ohne Id fehlt nur der vollständige Link zum Profil und den Einstellungen.)

Die Kekse habe ich jetzt manuell übernommen. Doch wer böse Absichten hat, kann sich diese per Cookie-Diebstahl beschaffen und ein Account übernehmen. Siehe dazu auf blog.seibert-media.net/blog/2011/06/22/cookie-diebstahl-unterbinden-internet-security/

Meine Meinung: Grob fahrlässig!

Na klar wird ein Weg zum Identifizieren des Users benötigt. Doch wieso setzen die Entwickler von dem System nicht einfach ein Cookie mit einem Token inkl. IP Vergleich oder Radnom Session? Dieser verrät nichts und kann eindeutig den User wieder Identifizieren, so das ein Auto Login erfolgt. Es gibt hunderte Tutorials, wie man die "Login merken"-Funktion sicher programmiert.

Mein Tipp: Versucht es doch mit einem fertigen Authentification Script, was keine Login Daten im Cookie speichert, sondern nur einen kleinen Token. Zum Beispiel PHPAuth (github.com/PHPAuth/PHPAuth) oder PHP-Auth (github.com/delight-im/PHP-Auth).

Ich hoffe liebes Winfuture.de Team, ihr achtet in Zukunft etwas mehr auf Sicherheit. Wenn ihr Hilfe braucht, gebt mir Bescheid.