| Python in einfachen Beispielen : Dynamische Webseiten - Cookies erzeugen (CGI) |
| Geschrieben von: Joerg | |||||||||||||||||||||
| Montag, den 18. April 2011 um 08:17 Uhr | |||||||||||||||||||||
Was sind Cookies?Übersetzen lässt sich der Begriff Cookie (s.a. Wikipedia.de) mit Plätzchen( kleiner Kuchen). In Zusammenhang mit Webseitenaufrufen sind dies kleine Textdateien, die von einem Webserver an den Nutzer geschickt werden können. Ruft ein Nutzer eine Webseite mit seinem Browser auf, so kann mit dem sogenannten Header der Webseite diese Textdatei an den Nutzer geschickt und in einem Verzeichnis auf dem Rechner des Nutzers abgespeichert werden. Es ist auch möglich über ein Javaskript in der Webseite solch ein Cookie zu übertragen, entsprechend können Cookies von einem Server wieder ausgewertet werden. Wie solch ein Cookie aussieht, lässt sich überprüfen, indem mit einem einfachen Texteditor (beispw. NotPad) ein Cookie geöffnet wird. Der Inhalt dieser Texdatei ist nur teilweise direkt entschlüsselbar. Wer genauer wissen will, welche Webseite, welche Cookies überträgt und wie der Inhalt solch eines Cookies aussieht, sollte untenstehende Webseite aufrufen . Es handelt sich hier um eine Cookie-Suchmaschine. Geben wir hier in einer Eingabezeile der Suchmaschine die Adresse einer Webseite ein, so werden alle Cookies, die die Webseite überträgt aufgelistet und der Inhalt des jeweiligen Cookies angegeben.Wie aus der unten stehenden Adresse zu erkennen ist, handelt es sich um eine Beta-Version einer Webseite, falls diese Seite nicht mehr besteht, müssen wir unter www.verbraucher-sicher-online.de uns bis zur Cookie-Suchmaschine durchhangeln. Die Cookie-Suchmaschine: http://b-versio.verbraucher-sicher-online.de/jcookie/ Zur Haupseite: http://www.verbraucher-sicher-online.de Geben wir in die Cookie-Suchmaschine die Adresse www.verbraucher-sicher-online.de ein, so könnten wir folgende Information bekommen: 1 Cookies gefunden. 1 Erstanbieter Cookies, 0 Drittanbieter Cookies 1 Erstanbieter Cookies
Der Inhalt eines Cookies besteht in der Regel aus einem Datensatz mit fünf variablen FeldernEs gibt hier unterschiedliche Normen, entsprechend gibt es auch verschiedene Python-Module. Für das Setzen eines Cookies benötigen wir keine besonderen Module. Das Haltbarkeitsdatum (Expires ): Das Haltbarkeitsdatum des Cookies. Wird dieses Datum nicht gesetzt, so ist das Cookie bis zum Schließen des Browsers gültig. Ansonsten kann ein Verfallsdatum angegeben werden (s.o.). Der Domain-Name (Domain) der Webseite: Hier ".verbraucher-sicher-online.de" Dem Pfad (Path) auf dem Server von dem aus auf ein abgelegtes Cookie nur zugegriffen werden darf. Dem Secure-Feld: Enthält das Feld den Wert "secure", so wird das Cookie sicher über https (Sicherheitsprotokoll) übertragen. Ist das Feld leer, wird das Cookie normal übertragen. Einem Wert, Inhalt: Dieser wird mit übertragen, könnte beispielsweise eine Identifikationsnummer sein. (s.a.: http://de.wikipedia.org/wiki/HTTP-Cookie) Setzen eines CookiesCookies werden mit dem sogenannten Header einer Webseite verschickt. In unseren CGI-Programmen gibt es immer die Zeile print 'Content-Type: text/html' /r/n , ( /r/n steht für carriage return und neue Zeile), diese Anweisung können wir auch durch einen zusätzlichen print-Befehl ersetzen. Auch diese Zeile ist eine Information, die an den Nutzer-Browser über den Header versandt wird. Es gibt noch weitere Header-Informationen auf die ich hier nicht eingehen will. Für das Setzen von Cookies ist die folgende Header-Anweisung wichtig: Set-Cookie: String . Der String umfasst den Inhalt des Cookies. Ein Nutzer kann Cookies ablehnen, wenn er dies nicht macht oder keine entsprechenden Anweisungen gibt, dann wird eine kleine Textdatei auf dem Rechner des Nutzers abgelegt. Über ein Python-Skript kann wieder auf Inhalte dieser Datei zugegriffen werden.
Die Browserausgabe:
Gehen wir vom Skript aus, so müsste die Serverzeit zu dem Zeitpunkt der Übertragung der Webseite auch zum Inhalt des Cookies gehören. Wurde wirklich ein Cookie übertragen?Dies läßt sich gut mit dem Internetbrowser feststellen. In dem folgenden Beispiel wird ein Firefox-Browser verwendet (Version 3.6.16). In der Menüzeile gibt es den Menüpunkt Extras. Wir klicken Extras an. Es öffnet sich ein Untermenü. Hier gehen wir auf den Punkt Einstellungen.... Wenn wir den Menüpunkt Datenschutz anklicken, so öffnet sich folgendes Fenster:
Hier klicken wir auf einzelne Cookies löschen. In einem Menü werden uns nun alle Cookies, die mit Hilfe von Firefox erzeugt wurden, angezeigt.
Der Name des Cookies ist letzter Besuch, als Information wurde die Serverzeit abgespeichert. In diesem Beispiel wurde das Cookie vom Server localhost (s.a. XAMPP) übertragen. Der Pfad des Servers auf dem die Auswertung des Strings eingeschränkt ist , ist das Verzeichnis für cgi-Skripte, da kein anderer bei der Erzeugung des Cookies angegeben wurde. Ein Haltbarkeitsdatum wurde ebenfalls nicht übersand, so dass das Cookie nach Beendigung des Browers seine Gültigkeit verliert.
Übertragung mehrerer Felder an ein Cookie
Das Ergebnis:entsprechend wie oben, nur die Serverzeit unterscheidet sich logischerweise.
Das Cookie mit Inhalt:
Da ein anderes Skript mit der Einschränkung auf einen anderen Pfad (/htdock) aufgerufen wurde, wird ein neues Cookie angelegt (s. Skript). Ebenso ist, wie gefordert, das Haltbarkeitsdatum verändert. Irritierend ist hier die Uhrzeit. Da wir die GMT-Zeit übertragen haben, ergibt sich eine Verschiebung zur lokalen Uhrzeit 2 Stunden (Berlin) (s.a. http://24timezones.com/de_weltzeit/berlin_aktuelle_zeit.php). Würden wir dieselbe Seite noch einmal aufrufen, so würde das von dieser Seite gesetzte Cookie überschrieben.
Tags:
|
|||||||||||||||||||||



