Session ID

Session ID

Eine Session-ID (engl.: session identifier, dt.: Sitzungs-ID) wird bei Anwendungen auf zustandslosen Protokollen als Identifikationsmerkmal verwendet, um mehrere zusammengehörige Anfragen eines Benutzers zu erkennen und einer Sitzung zuzuordnen. Insbesondere bei Webanwendungen finden Session-IDs breite Verwendung.

Inhaltsverzeichnis

Einleitung

Im World Wide Web werden Dienste aller Art mit Hilfe des Protokolls HTTP angeboten. Diese Dienste bestehen häufig aus mehreren zusammengehörigen Anfragen und Antworten. Um beispielsweise in einem Webshop etwas einzukaufen, durchstöbert der Benutzer zuerst den Katalog, lässt sich einige Artikel im Warenkorb vormerken und führt dann die Bestellung aus.

So komplizierte Vorgänge werden von HTTP jedoch nicht direkt unterstützt, denn es ist ein zustandsloses Protokoll. Eine HTTP-Anfrage liefert nur eine einzige Webseite zurück und merkt sich nicht, welcher Benutzer dazugehört. Um mehrere solche Anfragen zusammenzufassen und dem Benutzer zuzuordnen, wird jeder Anfrage eine Session-ID mitgeschickt. Diese Session-ID kann sich die Webanwendung merken und so die einzelnen Anfragen zuordnen.

Funktionsweise

Die Session-ID, auch Sitzungsnummer, wird vom Server zu Beginn einer Sitzung (Session) erzeugt. Die Session-ID muss mit der Antwort des Servers zum Client übertragen werden und von diesem bei jedem weiteren Zugriff auf den Server mitgeliefert werden. Mit Hilfe der eindeutigen Session-ID können die serverseitig gespeicherten Daten (Beispiel: Warenkorb) bei jedem Zugriff eindeutig mit einem Benutzer verbunden werden.

Die Session-ID muss also mit jeder Antwort des Servers erneut an den Client übertragen werden. Eine Anfrage, die die Session-ID nicht enthält wird als erste Anfrage einer neuen Session gesehen, der Benutzer verliert also seine bisherige Session.

Realisierung

Technisch kann die Übertragung der Session-ID durch sogenannte Cookies, Einfügen in die URIs oder unsichtbare Formularfelder erreicht werden.

Da die Funktion eines Cookie vom Server nicht vorausgesetzt werden kann, unterstützen viele Anwendungen beide Übertragungsformen: Bei der ersten Antwort wird die Session-ID sowohl als Cookie als auch in den URIs übertragen. Enthält die nächste Anfrage die Session-ID als Cookie, werden die URIs für den Rest der Session nicht mehr modifiziert.

Übertragung im HTTP-Header (Cookie)

Cookies sind eine Erweiterung des HTTP, die für die Lösung solcher Probleme entwickelt wurde. Der Server kann mit seiner Antwort (HTTP-Response) ein kleines Datenpaket an den Browser senden, das dieser bei jeder weiteren Anfrage (HTTP-Request) an denselben Server wieder mitsenden wird.
Die Session-ID-Übertragung mit Cookies erfordert also nur die einmalige Übertragung der Session-ID vom Server zum Client, alle folgenden Anfragen enthalten die Session-ID. Ein Vorteil ist, dass die Session-ID auch bei statischen Webseiten oder Bildern erhalten bleibt.
Das Problem dieses Ansatzes ist, dass Cookies auch über den Neustart des Browsers hinweg erhalten bleiben können, und von manchen Firmen zum Sammeln von Daten über den Benutzer verwendet werden. Aus diesem Grund haben manche Benutzer die Annahme von Cookies in ihrem Browser deaktiviert. Einige Webanwendungen weisen im Gegenzug explizit darauf hin, dass die Entgegennahme von Cookies im Browser aktiviert sein muss - z.B. um sich anzumelden.

Übertragung im URI

Da Folgeanfragen eines Benutzers in der Regel durch Anklicken eines Links oder Absenden eines Formulares erfolgen, kann die Session-ID auch dadurch übermittelt werden, dass jeder URI innerhalb einer Webseite so modifiziert wird, dass er die Session-ID enthält.
Hierzu sind zwei Vorgehensweisen verbreitet:
Session-ID im Query-Teil eines URI:
  • http://www.example.com/index?sid=edb0e8665db4e9042fe0176a89aade16
Session-ID als Teil des Pfades eines URI:
  • http://www.example.com/edb0e8665db4e9042fe0176a89aade16/index
Die Übertragung der Session-ID im URI erfordert einen erhöhten Programmieraufwand und es gibt verschiedene Situationen, die zum Verlust der Session führen können. Die Session-ID wird zudem in der Logdatei des Servers aufgezeichnet.

Übertragung im Datenteil eines HTTP-Request (HTML-Formulare)

Eine Session-ID kann auch ähnlich der Übertragung im Query-Teil einer URI im Datenteil eines HTTP-Request an den Server geschickt werden. Dazu wird die Session-ID beim Absenden eines HTML-Formulars mit der Methode POST übertragen. In der Regel wird die Session-ID in einem verstecktem Formularfeld (input-Elemente des Typs „hidden") gespeichert. Weil auch der HTML-Quellcode modifiziert werden muss, kann diese Methode ergänzend oder alternativ zur Übertragung in der URI eingesetzt werden.

Sicherheit

Welche Übertragungsart für die Session-ID auch gewählt wird, im Endeffekt vertraut der Server darauf, dass der Client dieselbe ID zurücksendet, die ihm übertragen wurde. Ein Benutzer kann aber, da er die Clientseite kontrolliert, eine beliebige Session-ID zurücksenden. Sollte diese Session-ID mit der eines anderen Benutzers übereinstimmen, ist das Ausspähen und Manipulieren der Daten anderer Benutzer möglich.

Es ist also von höchster Wichtigkeit, dass Session-IDs nicht erraten werden können. Dies wird in der Regel dadurch erreicht, dass die Session-ID zufällig aus einem Wertebereich ausgewählt wird, der so groß ist, dass er nicht durchsucht werden kann, und die Wahrscheinlichkeit, zufällig auf eine gerade verwendete Session-ID zu stoßen, extrem gering ist.

Mögliche Angriffe auf eine bestehende Sitzung werden unter Session Hijacking beschrieben. Der Ansatz, als Angreifer eine gültige Session zu erstellen und einem anderen Benutzer unterzuschieben, wird als Session Fixation bezeichnet.


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • session — [ sesjɔ̃ ] n. f. • 1657; angl. session; « séance » mil. XVe; « fait d être assis » déb. XIIe; lat. sessio ♦ Période pendant laquelle une assemblée délibérante, un tribunal tient séance. Sessions ordinaires (fixées par la loi). Session… …   Encyclopédie Universelle

  • Session — may refer to:Bureaucracy*Executive session, a portion of the United States Senate s daily session *Judicial session *Legislative session *Session (parliamentary procedure) *Presbyterian polity *Court of Session, the supreme civil court of… …   Wikipedia

  • session — ses‧sion [ˈseʆn] noun 1. [countable] also trading session FINANCE a period of time, usually a day, when buying and selling takes place on the stockmarket: • The Euro slid sharply in the European trading se …   Financial and business terms

  • session — ses·sion n: a meeting or series of meetings of a body (as a court or legislature) for the transaction of business; also: the period between the first meeting of a legislative or judicial body and the final adjournment see also regular session,… …   Law dictionary

  • Session — Ses sion, n. [L. sessio, fr. sedere, sessum, to sit: cf. F. session. See {Sit}.] 1. The act of sitting, or the state of being seated. [Archaic] [1913 Webster] So much his ascension into heaven and his session at the right hand of God do import.… …   The Collaborative International Dictionary of English

  • Session — (lateinisch sessio von sedere, sitzen) ist ein aus dem Lateinischen stammendes und im Englischen übliches Wort, dessen deutsche Übersetzung Sitzung ist. In lateinisch oder englisch geprägten Bereichen ist Session auch im Deutschen… …   Deutsch Wikipedia

  • Session 9 — est un film américain réalisé par Brad Anderson et sorti en salles en 2001. Sommaire 1 Synopsis 2 Fiche technique 3 Distribution 4 Autour du film …   Wikipédia en Français

  • Session — Sf Sitzungsperiode per. Wortschatz fach. (16. Jh.) Entlehnung. Entlehnt aus l. sessiō ( ōnis) Sitzung , Abstraktum zu l. sedēre (sessum) sitzen . Über das Englische ist entlehnt Session Musikveranstaltung mit viel improvisierter Musik .    Ebenso …   Etymologisches Wörterbuch der deutschen sprache

  • session — late 14c., periodical sitting of a court, from O.Fr. session, from L. sessionem (nom. sessio) act of sitting, from pp. stem of sedere to sit (see SEDENTARY (Cf. sedentary)). Sense of period set aside for some activity is first recorded 1920, in… …   Etymology dictionary

  • session — Session. s. f. Seance d un Concile, dans laquelle on decide quelque question touchant la foy, ou la discipline. La premiere, la seconde session. le Concile dans une telle session ordonna, &c …   Dictionnaire de l'Académie française

  • session — [sesh′ən] n. [ME < L sessio < sedere, to SIT] 1. a) the sitting together or meeting of a group; assembly, as of a court, legislature, council, etc. b) a continuous, day to day series of such meetings c) the term or period of such a meeting… …   English World dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”