Was ist eine Session-ID?

Stellen Sie sich ein großes Kongress-Zentrum vor, in dem verschiedene Veranstaltungen angeboten werden. Sie haben sich für einen bestimmten Vortrag entschieden, holen Ihre Teilnehmer-Plakette bzw. Ihr Badge ab, um damit den entsprechenden Sitzungssaal betreten zu können. Sie sind für den Einlass so gekennzeichnet, dass Sie als Person eindeutig der gewählten Veranstaltung zugeordnet sind. Das Kongress-Zentrum ist der Server, die einzelne Veranstaltung ist die Web-Adresse, und Ihr Badge ist Ihre ID für die Sitzung, englisch Session, Ihre Session-ID.

Mit solchen Sitzungsbezeichnern ist ein Webseite-Besucher während seines Aufenthalts auf der Seite eindeutig gekennzeichnet, er bekommt ein elektronisches Badge vom Server zugeteilt. Weitere Begriffe für diesen Sitzungsbezeichner sind Sitzungs-ID, Sitzungsnummer oder auch Sitzungskennung. Wie eine solche Sitzung beim Besuch einer Webseite zustande kommt und welche Hintergründe die Nutzung von Session-IDs hat, erklären wir detailliert in unserem Ratgeber.

Mehr als nur eine Domain!

Hier finden Sie Ihre perfekte Domain - z.B. .de Domain + persönlicher Berater

E-Mail-Adresse
24/7 Support
SSL-Sicherheit

Wo und wofür wird eine Session-ID verwendet?

Eine Session-ID ist ein technisches Hilfsmittel, um einen Nutzer einer Webseite eindeutig zu identifizieren und einer Sitzung zuordnen zu können. Die Session-ID ermöglicht den Zugriff auf die Daten der zuletzt durchgeführten Sitzung des Users. Diese Daten sind auf dem Server der jeweiligen Webseite gespeichert. Bei der ID handelt es sich um eine Zahlen-Zeichenfolge. Die nachfolgende Zeichenkette einer Sitzungs-ID mit 32 Zeichen wurde zum Beispiel mit PHP erzeugt und ausgegeben:

<?php
session_start();
    echo "Die Session-ID ist :" . session_id();
    $sid=session_id(); //erstellt eine Variable mit der Session-ID
?>

Wenn Sie über eigenen Webspace mit einem FTP-Zugang verfügen, können Sie das ganz einfach mit diesen drei Zeilen Code ausprobieren. Das erzeugte für diese spezielle Sitzung als Testaufruf die Ausgabe „Die Session-ID ist: 84266fdbd31d4c2c6d0665f7e8380fa3“.

Dieser Wert wird bei Abruf der Inhalte vom Server zum User übertragen und ordnet die dazu gehörenden Inhalte der letzten Sitzung vom Server zu. Der Nutzer bleibt mit seinen persönlichen Daten anonym, es wird lediglich festgestellt, dass derselbe User diese Webseite abruft. Fehlt diese ID, wertet der Server eine Anfrage als neue Anfrage und erteilt auch eine neue Session-ID.

Wozu das Ganze? Eine wichtige Funktion haben diese Sitzungsbezeichner im E-Commerce. Die Session-ID wird genutzt, um beispielsweise den Inhalt eines Warenkorbs oder zuletzt angesehene Artikel im Webshop dem User zuzuordnen. Das trägt zum Benutzerkomfort und einer Verbesserung der so genannten Website-Usability bei. Anhand der temporär zwischengespeicherten Daten von besuchten Webseiten lässt sich erkennen, welche Inhalte abgerufen wurden. Die gleiche Methode dient auch einer weiteren wichtigen Funktion: Mit dieser Information – dem Sitzungsbezeichner – kann Werbung (Banner, Pop-ups, Links etc.) ausgespielt werden, die den Nutzer wahrscheinlich besonders interessiert, was zu einer höheren Reaktionsquote führt.

Funktionsweise einer Session-ID

Eine Session-ID wird am Anfang einer jeden Sitzung (Session) vom Server erzeugt und mit der Anfrage des Nutzers an den Browser übertragen und dort gespeichert. Alle Daten, die mit dieser Sitzung verbunden sind, speichert auch der Webserver in einem extra dafür angelegten Verzeichnis auf der Server-Festplatte. In der Regel ist das ein temporäres Verzeichnis "…/tmp". Die dort abgelegten Daten beinhalten neben der Session-ID auch andere Inhalte, wie zum Beispiel eine Nutzer-ID und – wenn auf der Webseite benötigt – den Inhalt eines bestückten Warenkorbs. Eine solche Datei hat dann beispielsweise folgenden Inhalt:

/tmp/sess_84266fdbd31d4c2c6d0665f7e8380fa3
UserID|i:1142;MyCart|a:2:{i:0;s:8:"Item_Nr01";i:1;s:8:"Item_Nr02";}

Die beiden hauptsächlich genutzten Techniken zur Übertragung einer Session-ID beleuchten wir im nachfolgenden Abschnitt.

Wie gelangt die Session-ID zum User und zurück?

Für die Übertragung einer Session-ID gibt es zwei unterschiedliche Wege.

Session-ID per URI übertragen

Nach dem erstmaligen Aufruf einer Webseite werden weitere Anfragen eines Nutzers durch das Anklicken von Links oder durch das Absenden von Formularen ausgeführt. Ist der zugeteilte Sitzungsbezeichner einmal erteilt, wird durch ihn der URI (Uniform Ressource Identifier) verändert, indem die Session-ID als Variable an den URI angehangen wird. Der Link dazu sieht dann mit der zuvor definierten Variablen $sid wie folgt aus:

<a href="https://www.wunschdomain.de/cart.php?sid=$sid">www.wunschdomain.de</a>

erzeugt folgenden Link im Browser:

https://www.wunschdomain.de/cart.php?sid=84266fdbd31d4c2c6d0665f7e8380fa3

Eine alternative Möglichkeit besteht darin, den Sitzungsbezeichner als Pfad zu setzen:

<a href="https://www.wunschdomain.de/$sid/cart.php">www.wunschdomain.de</a>

Damit erhält man den wie folgt modifizierten Link im Browser:

https://www.wunschdomain.de/84266fdbd31d4c2c6d0665f7e8380fa3/cart.php

Der Server ist dann so konfiguriert, dass er die Session-ID immer als Pfad in die entsprechende Abfrage vom User einfügt und so die Identifikation durchführen kann.

Das kann man auch mit Formularfeldern realisieren, indem man die einmal erzeugte Session-ID in ein verstecktes Formularfeld „verpackt“:

<form method="post" action="/fuehre_Aktion_aus">
    <input type="text" name ="KdNr">
    <input type="hidden" name="sessionId" value="$sid" />
    < … >
</form>

Damit wird die Session-ID mittels der festgelegten POST-Methode wieder an den Server übertragen. Die Session respektive der aktuelle User sind identifiziert.

Session-ID per HTTP-Header übertragen

Hier kommen Cookies zum Einsatz. Ein Cookie ist – wie Sie seit einiger Zeit auf fast jeder Webseite lesen können – eine kleine Textdatei. Es handelt sich um eine Erweiterung des HyperText Transfer Protocols (HTTP). Diese Textdatei wird beim Nutzer lokal abgespeichert und enthält die Session-ID. Bei einer erneuten Anfrage an den Server wird der Inhalt dieses Session-Cookies an den Server übertragen, der seinerseits ebenfalls den Sitzungsbezeichner temporär abgelegt hat. Stimmen Cookie-Inhalt vom User und Session-ID auf dem Server überein, wird die Abfrage ausgeführt.

Hinweis

Nach den Richtlinien der DSGVO – Stand August 2020 – ist ein Session Cookie in den meisten Fällen nicht von der Opt-In-Regelung betroffen. Es muss also keine aktive Zulassung dieser speziellen Cookies abgefragt werden. Das befreit nicht davon einen Hinweis darauf auszuspielen.

Dass solche Dateien eingesetzt werden, kann man zum Beispiel daran erkennen, dass einmal eingegebene Formulardaten bei wiederholten Aufrufen des Formulars nicht erneut in das jeweilige Feld eingetragen werden müssen. Schon mit dem ersten Buchstaben erscheint die zuvor getätigte Eingabe als Vorschlag.

Wie sicher sind Session-IDs?

Generell sind Session-IDs kein Garant für sicheres Browsen im Internet. Wer es mit dem nötigen Programmierwissen darauf absieht, kann ungesehen während einer Session Inhalte abgreifen – das Ganze nennt man dann Session Hijacking.

Sitzungsbezeichner die per Session-Cookies zum Nutzer gelangen und dort gespeichert sind, werden automatisch gelöscht, sobald Sie Ihren Browser komplett schließen. Nur einen offenen Browser-Tab zu schließen, genügt dafür nicht. Session-Cookies stellen – im Gegensatz zu dauerhaft oder länger gespeicherten Cookies – daher kein erhöhtes Sicherheitsrisiko dar.