Session ID's über die URL weiter geben...

Hi und frohe Ostern,

ich möchte noch einen weiteren Thread zu Sessions hinzu fügen. Ich weiß das man im normal Fall die Session ID über ein Cookie speichert und falls Cookies ausgeschaltet sind die ID über die URL weitergibt, doch da habe ich noch ein paar Fragen…

Ist es nicht gefährlich die ID über die URL zu übertragen, immerhin kann man diese manipulieren. Wie kann man sich davor schützen?

Ich möchte nur ungern die ID in allen URLs mit schicken, weil es einen riesen Aufwand bedeutet jeden Link zu ändern, geht es nicht auch anders?

MfG xXxPeterPanxXx

Ist es nicht gefährlich die ID über die URL zu übertragen, immerhin kann man diese manipulieren. Wie kann man sich davor schützen?

Die Session-ID im Cookie ist auch manipulierbar. (Wie alles, was clientseitig gespeichert wird.) Die Sicherheit bei Sessions besteht darin, dass die Wahrscheinlichkeit, zufällig eine weitere derzeit vergebene Nummer zu treffen, vernachlässigbar gering ist. Das Problem, das du bei Session-IDs in der URL hast, sind die Leute, die den Link weitergeben oder in Foren posten oder die sich einen Rechner mit Anderen teilen. Zeitnah können so Dritte die komplette URL in ihrem Browser aufrufen und somit Zugriff auf die Session-Daten bzw. das Login erhalten.

Es gibt einige Ansätze, die simpelsten „Angriffe“ abzufangen, aber das für alle Umstände sicher umzusetzen, ist wahrscheinlich unmöglich. Was mir spontan einfällt:

  • Zu jeder Session-ID serverseitig die User-IP oder den User-Browserstring speichern und bei jedem Refresh abgleichen. Beide Möglichkeiten funktionieren nicht immer.
  • Session-ID nach jedem Refresh ändern. Ein Nutzer kann dann weiterhin eingeloggt bleiben, da jeder interne Link auf der Seite die neue Session-ID angehängt bekommt. Der große Nachteil: Neuladen ohne einen Link anzuklicken verliert die Session.
  • Auf Sessions ohne Cookies verzichten.

Danach kannst du aber auch im Internet suchen.

Ich möchte nur ungern die ID in allen URLs mit schicken, weil es einen riesen Aufwand bedeutet jeden Link zu ändern, geht es nicht auch anders?

Es gibt in PHP eine Einstellung, die Session-ID automatisch an den Inhalt bestimmter HTML-Attribute anzuhängen.

Meine Meinung: Wenn du nicht einen absolut überzeugenden Grund hast, Sessions ohne Cookie zuzulassen, nimm davon Abstand.

Das bedeutet ich soll User von der Seite ausschließen?

Meine Meinung: Wenn du nicht einen absolut überzeugenden Grund hast, Sessions ohne Cookie zuzulassen, nimm davon Abstand.

Ja. Von den Funktionen, die ein Login erfordern, schon.

Übrigens: Ein Loginsystem tut oftmals nichts Anderes, als Nutzer auszuschließen.

Okay,
danke für deine Hilfe. Dann werde ich einen netten Hinweis auf die Seite schrieben, dass Cookies aktiviert sein müssen.