Die Session-ID als Cookie zu speichern gefällt mir schon viel besser als Benutzername und Passwort. Aber wie funktioniert das genau?
Zunächst mal müssten wir wissen, was genau Du vorhast, denn ggf. willst Du serverseitig gar keine Sessions verwalten und Dir geht es nur darum, den Benutzer wieder zu erkennen.
Das Prinzip hinter den Session-Cookies ist, dass der Browser mit jeder Anfrage den erforderlichen Cookie übermittelt, der die ID einer Sitzung enthält. Der Server überprüft, ob es die Sitzung gibt bzw. ob diese noch nicht abgelaufen ist. Sollte die Sitzung nicht (mehr) existieren oder abgelaufen sein, wird der Browser auf die Login-Seite geleitet. Hat sich der Benutzer korrekt angemeldet, wird eine neue Sitzung erstellt, die ID per Set-Cookie-Header an den Browser übermittelt und das Spiel beginnt von vorne.
Wo die Sitzungsdaten, und ob sie persistent gespeichert werden, ist eine ganz andere Frage.
Aber auch dann wäre es rein theoretisch gesehen möglich, dass das Cookie geklaut wird.
Ja. Dafür wurden in der Vergangenheit viele Gegenmaßnahmen entwickelt. So lassen sich MitM-Attacken mittels verschlüsselten Verbindungen (TLS) verhindern. Bei CSRF-Attacken wird es schon schwieriger. Daher hat
@JustNobody auch völlig richtig darauf hingewiesen, dass das Sicherheitsthema nichts ist, was man mal eben zwischen Tür und Angel selber macht.
Hier mal ein
Test (Link geht auf
https://www.java-forum.org/logout), wenn das funktioniert, hast Du gute Chancen, dass Du den Link in einer x-beliebigen Seite einbauen kannst, ggf. getarnt als img, um jeden Besucher der Seite automatisch aus dem java-forum.org ausgeloggt wird. Da im Originallink noch ein Parameter folgt, gehe ich mal davon aus, dass dieser dazu dient, solche Attacken zu verhindern.