Session-Status in ASP beibehalten

Ein Blick auf die Verwendung von Session-IDs im "klassischen" ASP und im ASP.NET und darauf, was mit Sessions passiert, wenn mehrere Web-Server ins Spiel kommen.

HTTP ist ein Protokoll, das den Clients keinen Status zuweist. Wenn ein Client eine Anfrage an den Server sendet, weiß der Server nicht, ob es die erste oder die 42. Anfrage des Client ist. Dies stellt für Active Server Pages (ASP) ein Problem dar, denn dort ist es häufig notwendig, Variablen auf der Server-Seite einem bestimmten Client zuzuordnen. Diese Zuordnung ist eines der Verfahren, die es einer Web Site ermöglichen, mir die neue Jethro Tull-CD zu schicken, die ich bestellt habe und nicht die Barry Manilow-CD, die jemand anders zur selben Zeit bestellt hat. ASP weist dem Client für diese Zuordnung einen einzigartigen Identifikationscode zu, die sogenannte Session-ID, die jeder Client zu Beginn einer Browser-Session erhält.

Was ist eine Session-ID?

Die Session-ID ist ein READ_ONLY-Wert, der die Nutzer gegenüber dem Web-Server jeweils eindeutig identifiziert. In einer klassischen ASP Session werden die IDs der Reihe nach vergeben – der Session-ID706616433 folgt die Session-ID 706616434 und so weiter. Die klassische ASP-Session-ID wird in Form eines verschlüsselten, temporären Cookies auf dem Rechner des Nutzers abgelegt. So würde zum Beispiel die Session-ID 706616434 als der Cookie ASPSESSIONIDGQQGQGCS=
JHMBOBKCBINEHLPKJHOPABBE auf dem Rechner des Users abgelegt.

Mit ASP.NET wurden ein paar Veränderungen an der Session-ID vorgenommen. Wenn man ASP.NET verwendet, besteht die Session-ID aus einem 120-Bit String aus ASCII-Zeichen, wie sie auch für URLs verwendet werden dürfen. Der Dokumentation von Microsoft zufolge werden die Session-IDs mittels eines Algorithmus erzeugt, der ihre Einzigartigkeit garantiert, was wiederum eine Kollision der Sessions verhindert, die stattfände, wenn zwei Anwender versuchten, dieselbe ID zu verwenden. Außerdem macht es der Zufallsfaktor erheblich schwieriger, die ID einer bestehenden Session zu bestimmen, was die Sicherheit erhöht. Wie beim klassischen ASP wird die Session-ID in ASP.NET gewöhnlich in Form eines temporären Cookies auf dem Client-Rechner abgelegt. Das Format dieses Cookies unterscheidet sich nur geringfügig von seinem klassischen Gegenstück, ein Beispiel: asp.net_sessionid=jhmbobkcbinehlpkjhopabbe.

Zusätzlich zu der traditionellen Methode des Statuserhalts durch temporäre Cookies unterstützt ASP.NET einen „cookiefreien“ Modus. Wenn der cookiefreie Modus aktiviert ist, bettet ASP.NET die Session-ID in die URL ein, die zurück an den Client geschickt wird. So arbeiten auch Browser stabil, die keine Cookies unterstützen, oder bei denen die Cookies deaktiviert sind. Es lohnt sich, den cookiefreien Modus im Hinterkopf zu behalten, wenn man die gegenwärtige Gefühlslage bezüglich Cookies und der durch sie möglichen Rückverfolgung von Kunden bedenkt.

 

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Session-Status in ASP beibehalten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *