Zum Inhalt springen

SEO Analyse » SEO Lexikon » s » Session ID

Session IDBei einer Session ID handelt es sich um eine Sitzungs-ID. Die Session ID wird immer dann verwendet, wenn es zu Anwendungen mit zustandslosen Protokollen kommt. Sie wird hier als ein Identifikationsmerkmal eingesetzt. So können mehrere Anfragen, die zusammengehören, einem Benutzer und auch einer einzigen Sitzung zugeordnet werden. Daher wird die Session ID häufig bei Webanwendungen angewendet. Im Internet wird die Session ID mit der Hilfe des HTTP-Protokolls für Dienste aller möglichen Arten angeboten. Bei diesen Diensten, bei denen die Session ID verwendet wird, handelt es sich häufig um mehrere Anfragen, die zusammengehören. Solche Anfragen bestehen immer aus Anfragen und den dazugehörigen Antworten. Will ein Benutzer beispielsweise etwas in einem Webshop einkaufen, wird dieser in der Regel zuerst den Katalog nach Angeboten durchstöbern. Währenddessen wird er einige der Artikel auf dem Wunschzettel vormerken oder in den Warenkorb legen. Erst im Anschluss, wenn unter Umständen überflüssige Artikel gelöscht wurden, wird die Bestellung ausgeführt. In HTTÜ werden jedoch nur zustandslose Protokolle angefertigt, sodass sehr komplizierte Vorgänge hier nicht direkt unterstützt werden. Wird eine einfache HTTP-Anfrage gestellt, wird durch diese nur eine Webseite zurückgeliefert. Hier merkt sie sich nicht, durch welchen Benutzer die Anfrage gestellt wurde. Damit solche Anfragen zusammengefasst werden können und diese Anfragen auch einem Benutzter zugeordnet werden können, wird zu jeder Anfrage, die im Internet gestellt wird, eine Session-ID zugeordnet und mitgeschickt. Die Webanwendung hat nun die Möglichkeit, sich diese Session ID zu merken. So können durch die Webanwendung die einzelnen Anfragen zu einer Sitzung zugeordnet werden. Durch das Time-out wird die Sitzung in der Regel nach einer bestimmten Zeit automatisch beendet. Zudem hat der Benutzer die Möglichkeit die Sitzung zu beenden. In beiden Fällen wird nach der Abmeldung die Session ID gelöscht. Aus diesem Grund kann der aktuelle Status von einer Sitzung beispielsweise nicht durch das Anlegen von einem Bookmark gespeichert und später wieder aufgerufen werden. Solche Beschränkungen können auch durch die Betreiber der Dienste eingerichtet werden. So können direkte Verlinkungen auf die einzelnen Seiten seiner Angebote durch sogenannte Deep Links verhindert werden.

Die Funktionen der Session ID

Die Session ID wird auch als Sitzungsnummer bezeichnet. Eine solche Session ID wird zu Beginn einer jeden Sitzung, der Session, durch den Server erzeugt. Dabei muss die Session ID zusammen mit der Antwort durch den Server zu den Klienten übertragen werden. Der Client muss die Session ID nun bei jedem bei allen Zugriffen die durch den Client auf den Server getätigt werden, mitgeliefert werden. Aufgrund der Session ID ist es möglich, dass Daten, die serverseitig gespeichert wurden, bei erneuten Zugriffen diese Daten mit dem Nutzer zu verbinden. So können beispielsweise die gespeicherten Daten wie die Artikel, die im Warenkorb liegen, wieder abgerufen werden. Die Session ID wird also folglich mit jeder erneuten Antwort durch den Server wieder an den Klienten übertragen. Kommt es zu einer Anfrage, bei welcher keine Session-ID übertragen wird, so wird diese Anfrage als eine erste Anfrage von einer neuen Session angesehen. So verliert der Nutzer seine bisherige Session-ID und erhält eine Neue.

Die Umsetzung

Technisch betrachtet wird die Session ID durch Cookies, durch das Einfügen in URIs oder auch durch den Einsatz von unsichtbaren Formularfeldern im Rahmen des HTTPs übertragen. Der Server kann jedoch die Funktion von einem Cookie nicht voraussetzen. Daher werden durch viele Anwendungen die beiden Übertragungsformen unterstützt. So werden häufig bereits sowohl die Session ID als auch Cookies übertragen. Zudem findet eine Übertragung in die URIs statt. Ist in der nächsten Anfrage die Session ID als Cookie enthalten, so kommt es zu keiner Modifizierung der URIs während der laufenden Session.

Die Übertragung der Session ID im HTTP-Header

Bei Cookies handelt es sich um Erweiterungen des HTTP. Diese Erweiterungen wurden erarbeitet, um solche Probleme zu lösen. Der Server ist in der Lage über das HTTP-Response, also durch seine Antwort kleine Datenpakete an die Browser zu versenden. Dieses Datenpaket wird nun bei jeder folgenden Anfrage, die an denselben Server gestellt wird, mitgesendet. Bei dieser erneuten Übertragung handelt es sich um das HTTP-Request. Wird die Session ID mit Cookies übertragen, so ist nur eine Übertragung der Session ID notwendig. Hier erfolgt eine Ermittlung vom Server zum Klienten. In den nun folgenden Anfragen ist die Session ID bereits enthalten. Der Vorteil liegt hier darin, dass bei statisch aufgebauten Webseites oder bei Bildern die Session ID erhalten bleibt. Problematisch ist jedoch, dass diese Cookies unter Umständen auch nach einem Neustart von dem verwendeten Browser erhalten bleiben. Diese werden durch manche Firmen als Lizenz zum Sammeln der Benutzerdaten angesehen. Daher wurde die Annahme von Cookies bereits durch etliche User deaktiviert. Bei einigen Webanwendungen ist es jedoch beispielsweise für die Anmeldung erforderlich, solche Cookies entgegenzunehmen. Ist das der Fall, wird durch die Webseites explizit darauf hingewiesen.

Die Übertragung der Session ID im URI

Folgeanfragen von einem Benutzer werden in der Regel durch das Anklicken von einem Link oder durch das Absenden von einem Formular gestellt. Hier kann auch durch die Modifizierung der URI eine Übertragung der Session ID erfolgen. Hier wird die IRI derart modifiziert, dass in ihm die Session ID enthalten ist. Wird die Session ID im URI übertragen, ist ein erhöhter Programmieraufwand notwendig. Zudem können verschiedene Situationen eintreten, die dazu führen, dass die Session verloren geht. Neben der Übertragung im URI wird die Session ID auch in einer Logdatei aufgezeichnet.

Die Übertragung der Session ID im Datenteil von einem HTTP-Request

Ähnlich wie es bei den Übertragungen im Query der URI der Fall ist, kann die Session ID auch im Datenteil von einem HTTP-Request erfolgen. Hier wird die Session ID an den Server gesendet. Kommt es zur Übertragung von einem HTML-Formular, wird die Session ID beim Absenden mit der POST-Methode an den Server übertragen. Üblicherweise kommt es hier zur Übertragung der Session ID, indem diese innerhalb eines versteckten Formularfelds gespeichert wird. Solche versteckten Formularfelder sind meistens Input-Elemente vom Typ hidden. Der HTML-Quellcode muss auch hier modifiziert werden. Daher kann diese Übertragungsmethode der Session ID auch alternativ oder ergänzend zu der Übertragungsmethode in der URI zum Einsatz kommen.

Die Speicherung von Sessioninformationen auf den Servern

Neben der Session ID werden weitere Daten während einer Session übertragen. Hierzu gehören Nutzdaten wie der Warenkorbinhalt oder auch die Benutzer ID. Diese Nutzdaten werden durch die Webserver standardmäßig gespeichert. Dies geschieht innerhalb eines bestimmten Verzeichnisses auf der lokalen Festplatte. Häufig geschieht diese Speicherung auch im temporären Verzeichnis der Betriebssysteme. Daneben können solche Sessiondaten aber auch an anderen Orten wie auf Membercards, Datenbanken oder Netzlaufwerken gespeichert werden. Das wird durch die meisten Programmiersprachen unterstützt.

Sicherheitsaspekte

Die Server vertrauen, gleich, welche Übertragungsart gewählt wird, darauf, dass die Klienten die gleichen IDs zurücksenden, die ihnen übertragen wurden. Die Benutzer können jedoch, da sie die Nutzerseite kontrollieren beliebige Session IDs zurücksenden. Stimmt diese Session ID mit der von einem anderen Nutzer überein, so können die Daten des Nutzers ausgespäht und manipuliert werden. Daher ist es von enormer Bedeutung, dass die Session IDs durch die Klienten nicht erraten werden können. Daher wird die Session ID aus einem Werbebereich zufällig ausgesucht. Dieser Wertebereich ist so groß, dass dieser nicht durchsucht werden kann. Zudem wird so dafür gesorgt, dass die Wahrscheinlichkeit gering ist, dass jemand zufällig auf eine Session ID stößt, die gerade genutzt wird. Kommt es zu Angriffen auf eine Sitzung, so wird dies als Session Hijacking bezeichnet. Erstellt ein Angreifer eine gültige Session und schiebt sie einem Nutzer unter, so wird dies Session Fixation genannt.

Zusammenfassung

Eine Session ID dient als Identifikationsmerkmal in zustandslosen Protokollen wie HTTP, um mehrere Anfragen eines Benutzers zu einer einzigen Sitzung zusammenzufassen. Sie spielt eine wichtige Rolle in Webanwendungen, beispielsweise beim Online-Shopping und ermöglicht die Verfolgung von Benutzeraktivitäten und Daten wie Warenkorbinhalten.

Die Übertragung der Session ID kann auf verschiedene Weisen erfolgen: über Cookies, durch Einfügen in URIs oder mittels unsichtbaren Formularfeldern. Bei Cookies handelt es sich um kleine Datenpakete, die von einem Server an einen Browser gesendet werden und bei nachfolgenden Anfragen wieder an den Server zurückgesendet werden.

In Bezug auf die Sicherheit ist es wichtig, dass die Session ID nicht erratbar ist. Bei einer Übereinstimmung der Session IDs zwischen zwei verschiedenen Benutzern könnten Daten ausspioniert oder manipuliert werden. Angriffe, die auf die Kompromittierung einer Session abzielen, werden als Session Hijacking bezeichnet.

Die Speicherung der Sessioninformationen erfolgt serverseitig, oft auf der lokalen Festplatte und kann Nutzdaten wie Warenkorbinhalte oder Benutzer-IDs umfassen.

Es ist auch möglich, dass die Session ID im Rahmen des HTTP-Headers oder als Teil eines HTTP-Requests übertragen wird. Bei der letztgenannten Methode wird die Session ID in der Regel in einem versteckten Formularfeld gespeichert und mit der POST-Methode an den Server gesendet.

Häufige Fragen und Antworten

Was ist eine Session ID?

Bei einer Session ID handelt es sich um eine Sitzungs-ID, die verwendet wird, um Anfragen mehrerer Sitzungen eines Benutzers zuzuordnen. Sie wird häufig bei Webanwendungen eingesetzt und ermöglicht die Zusammenfassung von Anfragen und die Zuordnung zu einer einzelnen Sitzung.

Wie wird die Session ID übertragen?

Die Session ID kann auf verschiedene Weisen übertragen werden, wie zum Beispiel durch Cookies, in URIs oder im Datenteil eines HTTP-Requests. Dabei wird die Session ID entweder als Cookie im HTTP-Response übertragen, in der URI des Links modifiziert oder in einem versteckten Formularfeld im Datenteil des Requests eingefügt.

Welche Funktionen hat eine Session ID?

Die Session ID dient dazu, Daten, die serverseitig gespeichert wurden, mit einem Benutzer und einer Sitzung zu verknüpfen. Dadurch können beispielsweise Warenkorbinhalte wieder abgerufen oder Benutzeraktivitäten nachvollzogen werden. Die Session ID ermöglicht die Zusammenfassung von Anfragen zu einer Sitzung.

Bildnachweis: iStock.com/VajiraThongsom


Zurück zur Hauptseite: s
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.